2012-06-02 229 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;