PHP使用一个数组作为多维数组子数组的键

PHP使用一个数组作为多维数组子数组的键,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,我得到了一个一维数组,如: Array ( [0] => md5 [1] => name [2] => description [3] => url ) 和一个多维数组: Array ( [0] => Array ( [0] => md5#1 [1] => name1 [2] => desc1 [3] => url1

我得到了一个一维数组,如:

Array
(
[0] => md5
[1] => name
[2] => description
[3] => url
)
和一个多维数组:

Array
(
    [0] => Array
        (
            [0] => md5#1
            [1] => name1
            [2] => desc1
            [3] => url1
         )  
    [1] => Array
        (
            [0] => md5#2
            [1] => name2
            [2] => desc2
            [3] => url2
         )  
)
我想使用第一个数组的值作为多维数组的子数组的键,所以输出应该如下所示:

Array
    (
        [0] => Array
            (
                [md5] => md5#1
                [name] => name1
                [desription] => desc1
                [url] => url1
             )  
        [1] => Array
            (
                [md5] => md5#2
                [name] => name2
                [description] => desc2
                [url] => url2
             )  
    )
或者(作为一个有点离题的问题),如果多维数组的元素的子数组键不是[md5]而是[0],我如何按md5的值对它们进行排序


提前谢谢

要组合两个数组的值,其中一个数组的值是键,另一个数组的值是值,请使用函数:

$keysArray  = [];
$multiArray = [];
$result_array = [];
foreach ($multiArray as $value) {
    $result_array[] = array_combine($keysArray, $value);
}
usort($result_array, function($a, $b) { return strcmp($a['md5'], $b['md5']); });
对于排序-使用
usort
并定义自定义函数:

$keysArray  = [];
$multiArray = [];
$result_array = [];
foreach ($multiArray as $value) {
    $result_array[] = array_combine($keysArray, $value);
}
usort($result_array, function($a, $b) { return strcmp($a['md5'], $b['md5']); });

如果确定两个数组中元素的顺序-
array\u combine
。排序是通过
usort
完成的。但我该如何准确地进行排序呢?如果我尝试
array\u combine($keysarray,$multiDarray)
我得到
array\u combine():两个参数的元素数应该相等
,因为我认为它试图为[0]=>数组设置键,而不是为它设置键;这就是为什么会有foreach循环看到他的答案。它在第一个级别上遍历每个项目,并对其值应用联合收割机。该死,我在第一个数组中有一个额外的元素,我不知道这个错误来自何处^^^非常感谢!顺便问一下,如何将
$result\u array
的值保存在foreach外部?可能应该把
&
放在哪里?否则,
$result\u数组
如果在foreach外部打印,则只能获得1个元素当然,再次感谢!我想它在
array\u push()
而不是
[]
时也会起同样的作用,对吗?sry用于回答愚蠢的问题,但我正在努力理解数组到底是如何工作的是的,
array\u push($array,$value)
$array[]=$value