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

时间:2017-06-02 20:24:01

标签: php arrays multidimensional-array

所以我有一个单维数组,如:

xdmp:document-insert('/example.xml', <a><b>bbb</b></a>);

xdmp:node-insert-before(fn:doc('/example.xml')/a/b, <c>ccc</c>);

fn:doc('/example.xml');

(: returns <a><c>ccc</c><b>bbb</b></a> :)

和一个多维数组:

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
         )  
)

或者(作为一个有点offtopic问题),如果子阵列的键不是[md5]而是[0],我如何用md5的值对多维数组的元素进行排序?

提前致谢!

1 个答案:

答案 0 :(得分:2)

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

$keysArray  = [];
$multiArray = [];
$result_array = [];
foreach ($multiArray as $value) {
    $result_array[] = array_combine($keysArray, $value);
}

要进行排序 - 请使用usort并定义自定义函数:

usort($result_array, function($a, $b) { return strcmp($a['md5'], $b['md5']); });