2016-12-14 3 views
0

У меня есть массив в php.php array объединяет элементы

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

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

) 

я хочу, чтобы преобразовать его, как эти:

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

) 

и, наконец, я намерен изменить эти номера ключа на основе нанизывать на основе. как это:

$data = array(
      array(
       'title' => 'My title' , 
       'name' => 'My Name' , 
       'date' => 'My date' 
      ), 
      array(
       'title' => 'Another title' , 
       'name' => 'Another Name' , 
       'date' => 'Another date' 
      ) 
     ); 

я путать о том, что подход я буду use.Thanks перед тем

+2

См: http://stackoverflow.com/q/797251 – Rizier123

+0

спасибо BTW. @ Kris решения, которые соответствуют моим потребностям –

ответ

2

траверс массива данных $, используйте array_walk или Еогеасп.

$o = []; 
array_walk($data, function($v) use(&$o) 
{ 
    foreach($v as $k => $value) 
    { 
    $o[$k][] = $value; 
    } 
}); 
var_dump($o); 

выход:

array(3) { 
    ["title"]=> 
    array(2) { 
    [0]=> 
    string(8) "My title" 
    [1]=> 
    string(13) "Another title" 
    } 
    ["name"]=> 
    array(2) { 
    [0]=> 
    string(7) "My Name" 
    [1]=> 
    string(12) "Another Name" 
    } 
    ["date"]=> 
    array(2) { 
    [0]=> 
    string(7) "My date" 
    [1]=> 
    string(12) "Another date" 
    } 
} 
+0

спасибо, что это работает. как вы преобразовываете ключ на основе строки. ex: '[0] => Array ( 'Title No' => 10, 'Количество' => 1 )' –

+0

Я просто создаю новый массив. –

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