如何按其他数组对php多维数组进行排序

汉斯

我有一个带有 ID 的数组,看起来像

 $order_ids = array(8,9,10,4,7);

和另一个看起来像的多维数组

 array(
       0  => array(
                   0 => 4, // order id
                   1 => 23 // item_id
                   2 => 1 // qty
       ),
  1  => array(
                   0 => 9, // order id
                   1 => 66 // item_id
                   2 => 4 // qty
       ),
  2  => array(
                  0 => 8, // order id
                   1 => 17 // item_id
                   2 => 3 // qty
       ),
 )

我试过

 $keys = array_flip($order_ids);

 usort($multiarray, function($a, $b) use($keys)
 {
     return $keys[$a] - $keys[$b[0];
 });

第二个数组的 order_ids 对应于第一个数组中的值。我需要做的是按 order_ids 按照它们在第一个数组中的顺序对第二个数组进行排序。

吉布斯特鲁斯

您可以循环浏览记录$arr并按照$order_ids- result设置的顺序存储它们$newArr

<?php
$order_ids = array(8,9,10,4,7);

$arr = [
    [4, 23, 1],
    [9, 66, 4],
    [8, 17, 3],
];

foreach($order_ids as $id) {
    foreach($arr as $record) {
        if($record[0] == $id) {
            $newArr[] = $record;
            break;
        }
    }
}

演示

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章