2015-04-20 4 views
1

У меня есть следующий массив в руке. Я должен повторить следующий массив, чтобы он создал другой массив с выходом 0-го индекса каждого подматрица в 0-м индексе нового массива и так далее.Манипулировать многомерный массив в PHP

Текущий массив

Array 
    (
     [0] => Array 
      (
       [0] => 1 
       [1] => 2 
       [2] => 3 
      ) 

     [1] => Array 
      (
       [0] => 1 
       [1] => 2 
       [2] => 3 
      ) 

     [2] => Array 
      (
       [0] => 1 
       [1] => 2 
       [2] => 3 
      ) 

    ) 

Желаемая Выход

Array 
    (
     [0] => Array 
      (
       [0] => 1 
       [1] => 1 
       [2] => 1 
      ) 

     [1] => Array 
      (
       [0] => 2 
       [1] => 2 
       [2] => 2 
      ) 

     [2] => Array 
      (
       [0] => 3 
       [1] => 3 
       [2] => 3 
      ) 

    ) 

ответ

5

Для PHP версий> = 5.5.0 у вас есть array_column() функцию:

$newArray = array_column(
    $oldArray, 
    0 
); 

Для более ранних версий РНР, вы можете использовать array_map()

$column = 0; 
$newArray = array_map(
    function ($value) use ($column) { 
     return $value[$column]; 
    }, 
    $oldArray 
); 
+0

Спасибо, Марк ты вытащил меня из большого беспорядка , Оценил –

0

Это не отчислять из информации, чтобы работать с ... так, что-то вроде:

$newArray = []; 
foreach($topArray as $idxTop => $valTop){ 
    if(is_array($valTop)){($newArray[] = $valTop[0];} 
} 
0
$input = [ 
    0 => [1, 2, 3], 
    1 => [1, 2, 3], 
    2 => [1, 2, 3] 
]; 

$output = [ 
    array_column($input, 0), 
    array_column($input, 1), 
    array_column($input, 2) 
]; 

print_r($output); 

// Output: 
// 
// Array 
// (
//  [0] => Array 
//   (
//    [0] => 1 
//    [1] => 1 
//    [2] => 1 
//  ) 

//  [1] => Array 
//   (
//    [0] => 2 
//    [1] => 2 
//    [2] => 2 
//  ) 

//  [2] => Array 
//   (
//    [0] => 3 
//    [1] => 3 
//    [2] => 3 
//  ) 

//) 
Смежные вопросы