2014-04-17 82 views
-1

這裏是我的代碼如何將此數組放入多維數組?

$data = array('code'=>'100','txt'=>'success'); 
$movie = array('name'=>'movie', array(array('id'=>'1','name'=>'movie1'),array('id'=>'2','name'=>'movie2'))); 
$anime = array('name'=>'anime', array(array('id'=>'1','name'=>'anime1'),array('id'=>'2','name'=>'anime2')));; 

我怎樣才能把$電影的一些例子,$動漫到$數據[「數據」]? 我嘗試array_push和$data['data'] = array($movie,$anime);or $data['data'][] = array($movie,$anime);它沒有工作。

哦,抱歉,我只是希望它的XML(我有一個轉換數組到XML函數)

現在我使用$數據[ '數據'] [ '項目'] [] =數組($電影,$動畫);

所以這裏是我的XML

<xml> 
<data> 
<item>[movie]</item> 
<item>[anime]</item> 
</data> 
<xml> 

我的問題是,是否有另一種方式把它放到數據不?

+1

'$數據[ '數據'] =陣列($電影,動漫$);'應該有工作。 – Barmar

+0

看到這個演示http://ideone.com/bMjZYt – Barmar

+0

哦,看起來像是我的錯誤。我試圖讓它像 [電影] [動漫]它看起來不能這樣做,或不? – crazyoxygen

回答

1

有多種方式來實現:

$data['data'] = array($movie, $anime]); 

使用短數組語法,那就更簡單了:

$data['data'] = [$movie, $anime]; 

如果你這樣做是在一個循環中,然後將它們添加一個在一個時間:

$data['data'] = array(); 
$data['data'][] = $movie; 
$data['data'][] = $anime; 

或者,如果你想使用array_push()

$data['data'] = array(); 
array_push($data['data'], $movie); 
array_push($data['data'], $anime); 

Demo

+0

@Barmar:啊,對。更新。 –

0

這取決於你想,或者在不同的那些例子中,主陣列的一個關鍵的兩個動漫和電影陣列:

$data['anime'] = $anime; 
$data['move'] = $movie; 

會像$數據訪問[ '動漫'] [ '名稱']; 等等,或者你可以把他們兩個下數據,如您的問題暗示,像這樣

$data['data'] = array($anime, $movie); 

哪位能像$數據[「數據」] [1] [「名」]爲電影陣列進行訪問,而對於動畫數組則爲0。

1

首先,您需要了解array_push的工作原理。它會在陣列的末端處插入一個元素,並且會根據可用的最高數字鍵爲其提供一個數字鍵。如果沒有數字鍵(例如全部文本),則數字鍵將爲零。

例如:

php > $a = array('b','c'); 
php > array_push($a, 'd'); 
php > print_r($a); 
Array 
(
    [0] => b 
    [1] => c 
    [2] => d 
) 

在上面的例子中的所有按鍵均字母,因爲我們還沒有創建關聯數組。但是,如果我們確實創造了一個關聯數組,它看起來像:

php > $b = array('a'=>'a'); 
php > array_push($b, 'c'); 
php > print_r($b); 
Array 
(
    [a] => a 
    [0] => c 
) 

如果您在$data陣列上使用array_pusharray_shift,你會添加你要添加的數據,但沒有一個關聯數組的索引,你可以參考的東西,在這種情況下,'數據'。

要添加,你可以這樣做:

$data['data'] = array($movie, $anime);