2015-11-10 3 views
0

я есть многомерный массив и у меня есть еще одно, что есть некоторые из ид, которые существуют в первом Multi-Dimensionalфильтр многомерный массив из одного массива

теперь, что мне нужно, чтобы использовать функцию фильтра для фильтрации любого элемента, который существует во втором одном массиве

моего многомерный массив:

$Base = array 
    (
    array("aa",1), 
    array("bb",2), 
    array("cc",3), 
    array("dd",4), 
    array("ee",5), 
    array("ff",6), 
    array("gg",7), 
); 

и другое одно:

$child = array(1,4,5); 

, что я ожидал теперь фильтровать массив и получить

$new = array 
    (
    array("aa",1), 
    array("dd",4), 
    array("ee",5) 
); 
+1

Посмотрите [array_filter] (http://www.php.net/array_filter). Вы можете использовать обратный вызов, который имеет доступ к '$ child' и просто возвращает' in_array ($ arg [1], $ child) '. –

+0

да, что мне нужно, но я не мог заставить логическую идею вернуть истинное значение –

ответ

1

Это должно работать для вас.

$Base = array(
    array("aa",1), 
    array("bb",2), 
    array("cc",3), 
    array("dd",4), 
    array("ee",5), 
    array("ff",6), 
    array("gg",7), 
); 
$child = array(1,4,5); 

$filtered = array_filter($Base, function($arg) use ($child){ 
    //return if arg1 is in $child 
    return in_array($arg[1], $child); 
}); 

Демо: http://codepad.viper-7.com/qqcl3e

Смежные вопросы