В PHP можно удалить элементы из многомерного массива при сравнении, используя циклы и функции PHP для работы с массивами. Вот пример кода, который позволит вам выполнить это действие:
function removeElements($array, $condition) { foreach ($array as $key => $value) { if (is_array($value)) { $array[$key] = removeElements($value, $condition); } else { if ($value === $condition) { unset($array[$key]); } } } return $array; } // Пример использования $myArray = array( 'foo' => array( 'bar' => 1, 'baz' => 2 ), 'hello' => array( 'world' => 3, 'php' => 4 ), 'xyz' => array( 'abc' => 5, 'def' => 6 ) ); $condition = 2; $result = removeElements($myArray, $condition); print_r($result);
В приведенном примере кода функция removeElements()
принимает два параметра: массив, из которого нужно удалить элементы, и условие, по которому будет производиться сравнение.
В цикле foreach
происходит обход массива и проводится проверка на то, является ли текущий элемент массивом или нет. Если элемент является массивом, вызывается рекурсивно функция removeElements()
для обработки вложенных массивов.
В блоке else
происходит сравнение значения элемента с условием. Если сравнение истинно, элемент удаляется с помощью функции unset()
. Если значение элемента не соответствует условию, оставляем его нетронутым.
В результате выполнения кода на экран будет выведен новый массив, из которого будут удалены все элементы со значением равным 2:
Array ( [foo] => Array ( [bar] => 1 ) [hello] => Array ( [world] => 3 [php] => 4 ) [xyz] => Array ( [abc] => 5 [def] => 6 ) )
Приведенный пример кода можно изменять в соответствии с вашими специфическими потребностями и требованиями.