У меня вопрос о фильтрации многомерного массива в PHP. То, что я хотел бы достичь, - это вытащить определенный массив элементов (значение медиаконтента) из существующего массива. Это то, что я получил до сих пор:Фильтровать многомерный массив по ключу в PHP
Existing многомерный массив:
$multidimensional_array = array(
'entry' => array(
0 => array(
'width' => array(
'$t' => '1536'
),
'height' => array(
'$t' => '2048'
),
'id' => array(
'$t' => '878974'
),
'mediagroup' => array(
'mediacontent' => array(
'url' => 'http://website/urltotheobject.png',
'width' => 384,
'medium' => 'image',
'type' => 'image/jpeg',
'height' => 512
)
)
),
1 => array(
'width' => array(
'$t' => '5486'
),
'height' => array(
'$t' => '1144'
),
'id' => array(
'$t' => '485435'
),
'mediagroup' => array(
'mediacontent' => array(
'url' => 'http://website/urltotheobject.png',
'width' => 512,
'medium' => 'image',
'type' => 'image/jpeg',
'height' => 384
)
)
)
)
);
Функция (не правильно работает), чтобы фильтровать массив
function filterResponseByKey($keyToFilter,$array){
foreach ($array as $key => $value)
{
if($key == $keyToFilter)
{
return $value;
}
elseif(is_array($value))
{
$result = filterResponseByKey($keyToFilter, $value);
if($result != false)
{
return $result;
}
}
}
return false;
}
Я довольно новый для PHP и надеюсь, что вы, ребята, можете указать мне в правильном направлении и сказать мне, что я делаю неправильно здесь.
Я занимался исследованиями на следующих (альтернативных) веб-сайтах, но я не смог найти ответ, соответствующий моим потребностям.
understanding recursion, PHP filter_array
Не нужно возвращать, просто пропустить петлю. Итак, вы хотите очистить те, где, например, ширина 'mediacontent' больше, чем определенное значение? – vaso123
Верно, не используйте рекурсию, и если вы просто хотите получить несколько данных из исходного массива, просто создайте новый и вернетесь с этим. – Gerifield
Я бы использовал объекты и подход класса, но если вы действительно хотите, чтобы рекурсия проверяла мой ответ – zardilior