2015-11-03 156 views
2

我發現了幾個帖子,但都沒有工作。嘗試array_merge,array_replace_recursive,array_merge_recursive,但沒有達到我的目的。組合多維數組

我想將下面的5個數組合成單個數組,但我不明白爲什麼年份正在改變。是不是因爲什麼文件說:

然而,如果數組具有相同的數字鍵,後來價值 不會覆蓋原來的值,但將被追加。

<?php 
$a['x'][2015]['s'] = "xxxxxx"; 
$a['x'][2015]['d'] = 1; 

$b['x'][2014]['s'] = "yyyyyyyyy"; 
$b['x'][2014]['d'] = 3; 

$c['x'][2013]['s'] = "sssssss"; 
$c['x'][2013]['d'] = 22; 

$d['x'][2012]['s'] = "ddddddddddddd"; 
$d['x'][2012]['d'] = 21; 


$f['x'][2011]['s'] = "ffffffff"; 
$f['x'][2011]['d'] = 52; 


$e = array(); 

$e = array_replace_recursive ($e,$a); 
$e = array_replace_recursive ($e,$b); 
$e = array_replace_recursive ($e,$c); 
$e = array_replace_recursive ($e,$d); 
$e = array_replace_recursive ($e,$f); 

echo json_encode($e); 
?> 

輸出我正在 { 「×」:{ 「2015」:{ 「S」: 「XXXXXX」, 「d」:1}, 「2016」:{ 「S」: 「YYYYYYYYY」}, 「2017」:{ 「d」:3}, 「2018」:{ 「S」: 「sssssss」, 「d」:22}, 「2019」:{ 「S」: 「ddddddddddddd」, 「d」:21}, 「2020」:{ 「S」: 「FFFFFFFF」, 「d」:52}}}

編輯:對不起,array_replace_recursive給出正確的結果。我在phpfiddle.org模擬中做了錯誤的事情......

+0

應該如何輸出?請編輯你的問題。 –

回答

0

我不相信你。我甚至執行代碼(使用array_replace_recursive),並具有以下結果:

{ 
    "x": { 
     "2015": { 
      "s": "xxxxxx", 
      "d": 1 
     }, 
     "2014": { 
      "s": "yyyyyyyyy", 
      "d": 3 
     }, 
     "2013": { 
      "s": "sssssss", 
      "d": 22 
     }, 
     "2012": { 
      "s": "ddddddddddddd", 
      "d": 21 
     }, 
     "2011": { 
      "s": "ffffffff", 
      "d": 52 
     } 
    } 
} 

可能是你沒有別的東西? 是的,在這種情況下array_merge_recursive不是一個選項。

+0

哦,該死的..我想在phpfiddle.org上搞砸了一些東西......無論我在改變什麼,它都不會改變輸出...... – abdfahim