猿问

基于另一个数组按键对数组进行排序?

基于另一个数组按键对数组进行排序?

在PHP中可以这样做吗?你打算怎么写一个函数?下面是一个例子。秩序是最重要的。

$customer['address'] = '123 fake st';$customer['name'] = 'Tim';$customer['dob'] = '12/08/1986';$customer['dontSortMe'] =
 'this value doesnt need to be sorted';

我想做这样的事情

$properOrderedArray = sortArrayByArray($customer, array('name', 'dob', 'address'));

因为在结束时,我使用了foreach(),它们没有按正确的顺序排列(因为我将值附加到一个字符串中,该字符串需要以正确的顺序排列,而且我不知道所有的数组键/值)。

我看过PHP的内部数组函数,但似乎只能按字母或数字排序。


喵喔喔
浏览 637回答 3
3回答

元芳怎么了

给你:function sortArrayByArray(array $array, array $orderArray) {     $ordered = array();     foreach ($orderArray as $key) {         if (array_key_exists($key, $array)) {             $ordered[$key] = $array[$key];             unset($array[$key]);         }     }     return $ordered + $array;}

潇湘沐

PHP>=5.3.0的另一种方式:$customer['address'] = '123 fake st';$customer['name'] = 'Tim';$customer['dob'] = '12/08/1986'; $customer['dontSortMe'] = 'this value doesnt need to be sorted';$customerSorted = array_replace(array_flip(array('name', 'dob', 'address')),  $customer);结果:Array (   [name] => Tim   [dob] => 12/08/1986   [address] => 123 fake st  [dontSortMe] => this value doesnt need to be sorted)适用于字符串和数字键。
随时随地看视频慕课网APP
我要回答