2017-01-01 9 views
0

Давайте предположим, что у меня есть следующий массив:Как изменить порядок многомерного массива?

Array 
(
    [0] => Array 
     (
      [0] => 1200 
      [1] => 2541 
      [2] => 2540 
      [3] => 2539 
     ) 
    [1] => Array 
     (
      [0] => Television 
      [1] => Monitor 
      [2] => Car 
      [3] => Bike 
     ) 
    [2] => Array 
     (
      [0] => Electrodomestic 
      [1] => Computer Stuff 
      [2] => Vehicle 
      [3] => Vehicle 
     ) 
) 

И я хотел бы устроить его в индивидуальном порядке, как это:

Array 
(
    [0] => Array 
     (
      [0] => 1200 
      [1] => Television 
      [2] => Electrodomestic 
     ) 
    [1] => Array 
     (
      [0] => 2541 
      [1] => Monitor 
      [2] => Computer Stuff 
     ) 
    [2] => Array 
     (
      [0] => 2540 
      [1] => Car 
      [2] => Vehicle 
     ) 
    [3] => Array 
     (
      [0] => 2539 
      [1] => Bike 
      [2] => Vehicle 
     ) 
) 

Как я могу это сделать?

Я хотел бы переустановить мой простой массив (из данных, извлеченных из REGEX) в массив, содержащий мои отдельные «объекты».

+0

Создайте цикл foreach, добавьте значения с одинаковыми индексами в новый элемент. –

+0

@u_mulder у вас есть пример? Как называется эта процедура, чтобы я мог ее узнать и узнать больше? –

+0

Нет процедуры. Начните с цикла 'foreach'. –

ответ

1

не имеют ничего общего, так вот одно из возможных решений:

$a = Array 
(
    '0' => Array 
     (
      '0' => 1200, 
      '1' => 2541, 
      '2' => 2540, 
      '3' => 2539, 
     ), 
    '1' => Array 
     (
      '0' => 'Television', 
      '1' => 'Monitor', 
      '2' => 'Car', 
      '3' => 'Bike', 
     ), 
    '2' => Array 
     (
      '0' => 'Electrodomestic', 
      '1' => 'Computer Stuff', 
      '2' => 'Vehicle', 
      '3' => 'Vehicle', 
     ) 
); 

// take a size of every subarray 
$t = sizeof($a[0]); 
// do a loop 
$new_a = []; 
for($i =0; $i < $t; $i ++) { 
    // `array_column` extracts every value 
    // with key `$i` from each element of 
    // `$a` array and adds these values 
    // to a new array 
    $new_a[] = array_column($a, $i); 
} 

echo'<pre>',print_r($new_a),'</pre>'; 

Предупреждение: array_column введен в php5.5.

+0

Если вы все еще чувствуете себя без дела, немного объясните, как это работает, поэтому OP получает от него образовательное значение и +1. –

+0

Не нужно объяснять, код все есть. Я вижу, что вы получили кол-во ключей, а затем зациклились на нем с помощью array_column. Очень интересно. –