在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的内部数组函数,但似乎只能按字母顺序或数字顺序排序.
是否可以对如下所示的数组进行排序和重新排列:
itemsArray = [ 
    ['Anne', 'a'],
    ['Bob', 'b'],
    ['Henry', 'b'],
    ['Andrew', 'd'],
    ['Jason', 'c'],
    ['Thomas', 'b']
]
匹配此数组的排列:
sortingArr = [ 'b', 'c', 'b', 'b', 'a', 'd' ]
不幸的是,我没有任何ID可以跟踪.我需要优先使items-array与sortedArr匹配尽可能接近.
更新:
这是我正在寻找的输出:
itemsArray = [    
    ['Bob', 'b'],
    ['Jason', 'c'],
    ['Henry', 'b'],
    ['Thomas', 'b']
    ['Anne', 'a'],
    ['Andrew', 'd'],
]
知道如何做到这一点?
我试图使用array_multisort函数对多维数组进行排序
我期待多维数组使用$ sort中的值来自我排序.$ sort与我的多维数组的volume元素有关.
我希望name元素按此顺序:
'name'=> 8,'name'=> 6,'name'=> 7,'name'=> 9','name'=> 10,'name'=> 10,
返回的订单不符合预期.也许我误解了array_multisort是如何工作的?
Array
(
[test1] => Array
    (
        [volume] => 67
        [edition] => 2
        [name] => 6
        [num] => 2
    )
[test2] => Array
    (
        [volume] => 86
        [edition] => 1
        [name] => 7
        [type] => 2
    )
[test3] => Array
    (
        [volume] => 85
        [edition] => 6
        [name] => 8
        [type] => 2
    )
[test4] => Array
    (
        [volume] => 98
        [edition] => 2
        [name] => 9
        [type] …