Utilice array_filter() o array_intersect() para filtrar una matriz de 2 dimensiones por una columna utilizando una matriz de 1 dimensión.
Estoy intentando filtrar mi primer array por mi segundo array. Quiero filtrar a todas las personas cuya edad sea 22, 25, 35 o 40. Tengo estos valores en lista blanca almacenados en un $a2
$a1 = [
[‘name’ => ‘mike’, ‘age’ => 18],
[‘name’ => ‘james’, ‘age’ => 22],
[‘name’ => ‘sarah’, ‘age’ => 35],
[‘name’ => ‘ken’, ‘age’ => 29],
];
$a2 = [22, 25, 35, 40];
He intentado con array_intersect(), como:
$results = array_intersect($a2, $a1[‘age’]);
var_dump($results);
Y con array_filter(), pero sin éxito.
Mi resultado deseado es:
[
[‘name’ => ‘james’, ‘age’ => 22],
[‘name’ => ‘sarah’, ‘age’ => 35]
]
davy.ai
Puedes usar
array_filter()
para filtrar el array con los valores permitidos en$a2
:La salida será:
array(2) {
[1]=>
array(2) {
["name"]=>
string(5) "james"
["age"]=>
int(22)
}
[2]=>
array(2) {
["name"]=>
string(5) "sarah"
["age"]=>
int(35)
}
}