2016-12-14 71 views
0

我在php中有数组。php数组合元素

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

感谢顺便说一句。 @Kris解决方案,它符合我的需求 –

回答

2

遍历$数据数组,使用array_walk或的foreach。

$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

感谢它的工作。你如何转换基于字符串的密钥。例如: '[0] => Array ( 'Title No'=> 10, 'Quantity'=> 1 )' –

+0

我只是创建一个新的数组。 –