Удалите «столбцы» из подмассивов двумерного массива

У меня есть простой, двухмерный массив вроде этого:

Array ( [0] => Array ( [0] => abc [1] => 123 [2] => aaaaa ) [1] => Array ( [0] => def [1] => 456 [2] => ddddd ) [2] => Array ( [0] => ghi [1] => 789 [2] => hhhhhhh ) ) 

Я пытаюсь написать эффективную функцию, которая вернет массив только с первыми столбцами «n» каждого подмассива. Другими словами, если n = 2, то возвращаемым массивом будет:

 Array ( [0] => Array ( [0] => abc [1] => 123 ) [1] => Array ( [0] => def [1] => 456 ) [2] => Array ( [0] => ghi [1] => 789 ) ) 

 const MAX = 2; // maximum number of elements foreach ($array as &$element) { $element = array_slice($element, 0, MAX); } 
 foreach($array as $key=> $element) { for($i=0; $i<$n; $i++) { $newArray[$key][$i] = $element[$i]; } } 

Не уверен, есть ли более эффективный метод.

Что-то не так, просто зациклившись на нем?

 for ( $i = 0; $i < sizeof($input); $i++ ) { for ( $j = 0; $j < $n; $j++ ) { $output[$i][$j] = $input[$i][$j]; } } return $output; 

Даже с array_walk:

 array_walk( $aYourArray, function(&$aSubRow){ $aSubRow = array_slice($aSubRow, 0, 2); } );