Лучший способ удалить «столбец» из многомерного массива

У меня есть многомерный php-массив, который представляет таблицу, подобную этой

------------- | A | 0 | A | |---|---|---| | 0 | 0 | 0 | |---|---|---| | A | 0 | A | ------------- 

поэтому массив выглядит так:

 array (size=3) 0 => array (size=3) 0 => string 'A' (length=1) 1 => string '0' (length=1) 2 => string 'A' (length=1) 1 => array (size=3) 0 => string '0' (length=1) 1 => string '0' (length=1) 2 => string '0' (length=1) 2 => array (size=3) 0 => string 'A' (length=1) 1 => string '0' (length=1) 2 => string 'A' (length=1) 

Теперь я хочу удалить вторую строку и второй столбец (это просто упрощенный пример btw).
Удаление строки очень просто:

 array_splice($array, 1, 1); 

Я нашел этот подход, но задавался вопросом, был ли более простой способ (аналогично строке) удаления столбца? Может быть, сначала перенести массив?

Попробуй это:

 function delete_row(&$array, $offset) { return array_splice($array, $offset, 1); } function delete_col(&$array, $offset) { return array_walk($array, function (&$v) use ($offset) { array_splice($v, $offset, 1); }); } 

Протестировано на Ideone: http://ideone.com/G5zRi0

Изменить (Amade):

Функция delete_col также может быть слегка изменена для работы с массивами с отсутствующими столбцами:

 function delete_col(&$array, $key) { return array_walk($array, function (&$v) use ($key) { unset($v[$key]); }); } с function delete_col(&$array, $key) { return array_walk($array, function (&$v) use ($key) { unset($v[$key]); }); } 

Это можно использовать, например, когда вам нужно перебирать массив и удалять некоторые столбцы на каждом шаге. Функция, использующая array_splice вместо unset , не была бы подходящей в таких сценариях (она основана на смещении, а не на основе ключа).