2012-06-02 228 views
5

如果我有以下數組。將$myArray[]的最後一個元素添加到list[]的最佳方式是什麼?請注意,list[]有數字索引(即不關聯)。謝謝!將元素添加到數組的最後一個元素

$myArray[] = array('name' => 'hello', 'list' => array()); 
+1

你的問題有點不清楚。你能發表一個你的結果應該是什麼樣子的例子嗎? –

回答

5

如果$ myArray的不關聯

array_push($myArray[count($myArray)-1]['list'], 'new element'); 

$myArray[count($myArray)-1]['list'][] = 'new element'; 

用這種方法你改變了數組指針的位置。

+0

是的,這可能會起作用。不知道是否有一個更清潔的解決方案,使用end() – user1032531

+0

當你使用結束時,你得到的是最後一個值的副本,而不是引用。所以如果你改變它的值不影響數組。如果您使用'end',您必須先調用它,然後使用'key'獲取最後一個元素的關鍵字,然後可以修改該數組。如果'$ myArray'不是關聯的,你可能想這樣做。 – clentfort

+0

謝謝!!!!!!!!!! – user1032531

4

你可以這樣說:

$last = array_pop($myArray); // remove last element of array 
$last['list'][] = "new element"; // add element to array 
$myArray[] = $last; // add changed last element again 
+0

看起來像這樣也可以。謝謝 – user1032531

-2

array_push功能做到這一點。

array_push() 
+0

在[PHP手冊](http://php.net/manual/en/function.array-push.php)之後,它和'$ array [] = $ var;'具有相同的效果他的代碼已經。所以我不認爲他在尋找這個。 – noob

1
$myArray[count($myArray)-1]['list'][]="something to go in 'list' array";//this shall append 
//to the second dimension array with keyname 'list' 
+0

而不是$ myArray [0],它需要指向$ myArray的最後一個元素,而不是0. – user1032531

+0

啊,我的不好。檢查我的編輯。 – 2012-06-02 16:14:56

+0

Gotcha。與clenfort相同的解決方案。謝謝! – user1032531

0

其實還有一個更華麗的方式(在我看來):

$ref = &$myArray[]; 
$ref['list'][] = 'new item' 

正如你可以看到$ REF - 爲參考$ myArray的最後一個元素,所以你可以改變過去的元素通過改變$ ref;