将多维数组转换为两个单独的数组


convert multidimensional array into two separated

>我有一个这样的多维数组:

 Array ( 
   [0] => Array ( 
              [id] => 1 
              [name] => privilages1 
              ) 
    [1] => Array ( 
              [id] => 2 
              [name] => privilages2 
              ) 
     [2] => Array ( 
              [id] => 3 
              [name] => privilages3 
                ) 
     [3] => Array ( 
              [id] => 4 
              [name] => privilage4 ) 
     [4] => Array ( 
              [id] => 5 
              [name] => privilages5 ) 
)

我想将其与另一个数组进行比较,它看起来像这样:

Array ( 
     [0] => Array ( 
              [id] => 1 ) 
     [1] => Array ( 
              [id] => 2)
)

如果 id 的值匹配,那么我想使用第一个示例中的所有值。

我该怎么做?

可以使用

array_filter通过提供用户定义的回调函数来筛选所需的数组元素。

这是代码:

$arr = array( array('id' => 1, 'name' => 'foo'),
              array('id' => 2, 'name' => 'bar'),
              array('id' => 3, 'name' => 'baz'),
              array('id' => 4, 'name' => 'wow'));
$ret = array_filter($arr, create_function('$el', 
          'static $search=array(array("id" => 1), array("id" => 2));
           $n=array("id" => $el["id"]);
           return (array_search($n, $search) !== false);'));
print_r($ret);

输出

Array
(
    [0] => Array
        (
            [id] => 1
            [name] => foo
        )
    [1] => Array
        (
            [id] => 2
            [name] => bar
        )
)