2014-03-13 42 views
0

我有以下数组多维数组:操纵用PHP

$arr = array(
      array("2014-03-13"=>array("a"=>1,"b"=>2)), 
      array("2014-03-12"=>array("a"=>4,"b"=>3)) 
     ); 

而且我想改变它看起来更多的东西这样的方式。

$arr = array(0=>array("date"=>"2014-03-13","a"=>1,"b"=>2), 
      1=>array("date"=>"2014-03-12","a"=>4,"b"=>3)); 

继承人我到目前为止。

$keys = array(); 
$vals = array(); 
foreach($arr as $row){ 
    foreach($row as $key=>$val){ 
    $keys[]=array("date"=>$key); 
    foreach($val as $keys=>$values){ 
     $vals[]=array($keys=>$values); 
    } 
    } 
} 

array这得到dates工作正常,所以在下面的例子中,$keys array作品不过$vals array并不像预期的那样,而是给了我类似这样的数组。

Array ([0] => Array ([a] => 1) 
     [1] => Array ([b] => 2) 
     [2] => Array ([a] => 4) 
     [3] => Array ([b] => 3) 
     [4] => Array ([a] => 4) 
     [5] => Array ([b] => 3)) 

任何帮助获取数组所需的赞赏。

+0

在该第一阵列有一个0 =>,但不应有也可以是1 =>? – larsAnders

+0

@IarsAnders不,不应该存在它不相关的,如果它不存在,数组仍然以相同的方式打印出来。 – user2157179

+1

或者,最好不要使用'0 =>',因为数字索引在php中是隐含的。 –

回答

1

它应该是

$result = array(); 
foreach($arr as $row) { 
    foreach($row as $date=>$values) { 
     $values['date'] = $date; 
     $result[] = $values; 
    } 
} 
1
$arr = array(
    array(
     "2014-03-13" => array("a"=>1, "b"=>2) 
    ), 
    array(
     "2014-03-12" => array("a"=>4, "b"=>3) 
    ), 
); 


$result = array(); 
foreach ($arr as $item) { 
    foreach ($item as $date => $values) { 
     $result[] = array_merge(array('date' => $date), $values); 
    } 
} 

var_dump($result); 
0
 Here is the code: 

    $arr = array(
     0=>array("2014-03-13"=>array("a"=>1,"b"=>2)), 
      array("2014-03-12"=>array("a"=>4,"b"=>3)) 
     ); 

$finalarray=array(); 
foreach($arr as $k=>$v){  

    foreach($v as $kk=>$vv){ 
     $newarray=array(); 

     $newarray["date"]=$kk; 
     foreach($vv as $kkk=>$vvv){ 
      $newarray[$kkk]=$vvv; 

     } 


    } 

    $finalarray[]=$newarray; 
} 

echo "<pre>"; 
print_r($finalarray); 
echo "</pre>"; 

     **Here is the output:** 

     Array 
     (
      [0] => Array 
       (
        [date] => 2014-03-13 
        [a] => 1 
        [b] => 2 
       ) 

      [1] => Array 
       (
        [date] => 2014-03-12 
        [a] => 4 
        [b] => 3 
       ) 

     )