Мне нужно отфильтровать многомерный массив по значению подмассива, который может каждый раз находиться на разных позициях.
Следующий массив
array(3) {
[147]=>
array(2) {
[0]=>
int(4)
[1]=>
string(3) "req"
}
[199]=>
array(2) {
[0]=>
int(5)
[1]=>
string(3) "opt"
}
[212]=>
array(3) {
[0]=>
int(2)
[1]=>
int(5)
[2]=>
string(3) "req"
}
необходимо разделитьв эти массивы.
Массив 1:
array(2) {
[147]=>
array(2) {
[0]=>
int(4)
[1]=>
string(3) "req"
}
[212]=>
array(3) {
[0]=>
int(2)
[1]=>
int(5)
[2]=>
string(3) "req"
}
Массив 2:
array(1) {
[199]=>
array(2) {
[0]=>
int(5)
[1]=>
string(3) "opt"
}
Я знаю о array_filter (), но не могу понять функцию внутри array_filter(), который дает мне желаемый результат.
Я пытался
$req = array_filter($my_array, function ($v, $k) {
return $v == 'req';
}, ARRAY_FILTER_USE_BOTH);
Я также пытался
function filter_my_array($my_array, $search_term) {
$new_array = array();
foreach ($my_array as $subarray) {
if (in_array($search_term, $subarray)) {
$new_array[] = $subarray;
}
}
return $new_array;
}
$req = filter_my_array($array, 'req');
Оба подхода не работают.