2014-07-01 16 views
0

我有一個數組(我在這裏展示它作爲一個JSON ..):合併數組PHP(片)

[ 
{ 
"icon1_name":"Home Address A", 
"icon2_name":"Home Address B", 
"icon3_name":"Home addressC", 
}, 
{ 
"icon1_name":"OfficeA", 
"icon2_name":"OfficeB", 
"icon3_name":"OfficeC", 
} 

]

我想在中間增加一個陣列(家庭地址和辦公室之間)。 這是我試圖這樣做:

array_splice($myArray, 1, 0, $arrayToInsert); 

,但我得到的數字與結果:

{ 
    "1":{ 
    "icon1_name":"OfficeA", 
    "icon2_name":"OfficeB", 
    "icon3_name":"OfficeC", 
    " 
    }, 
    "2":{ 
    "icon1_name":"PhoneA", 
    "icon2_name":"PhoneB", 
    "icon3_name":"PhoneC", 
    " 
    }, 
    "3":{ 
    "icon1_name":"FaxA", 
    "icon2_name":"FaxB", 
    "icon3_name":"FaxC", 
    }} 

我可怎麼辦這個合併沒有得到它的編號?這就是說,保持原始的json格式。

+0

你是什麼意思,沒有得到它的編號? –

+0

看看第二個JSON。這是不一樣的。它有數組編號:「1」,「2」,「3」... ... – user3282988

+1

你可以在數組中調用array_values,這會將數字重新設置回以'0開始,當轉換爲json時使outter數組一個數組,而不是一個對象。 –

回答

1

array_splice代碼你張貼在這裏解碼細跟JSON字符串作品:

$myArray = json_decode('[ 
    { 
     "icon1_name":"Home Address A", 
     "icon2_name":"Home Address B", 
     "icon3_name":"Home addressC" 
    }, 
    { 
     "icon1_name":"OfficeA", 
     "icon2_name":"OfficeB", 
     "icon3_name":"OfficeC" 
    } 
]'); 

$arrayToInsert = json_decode('[ 
    { 
     "icon1_name":"PhoneA", 
     "icon2_name":"PhoneB", 
     "icon3_name":"PhoneC" 
    } 
]'); 

array_splice($myArray, 1, 0, $arrayToInsert); 

print_r(json_encode($myArray)); 

輸出:

[ 
    { 
    "icon1_name":"Home Address A", 
    "icon2_name":"Home Address B", 
    "icon3_name":"Home addressC" 
    }, 
    { 
    "icon1_name":"PhoneA", 
    "icon2_name":"PhoneB", 
    "icon3_name":"PhoneC" 
    }, 
    { 
    "icon1_name":"OfficeA", 
    "icon2_name":"OfficeB", 
    "icon3_name":"OfficeC" 
    } 
] 

你正在解碼成比這些不同的PHP數組的JSON字符串?