$c=array("a"=>"blue","b"=>"green");
array_push($c,$c["d"]="red");
print_r($c);
此代码将密钥添加到数组中。但它也将索引键添加到相同的键/值对。如何避免这个索引键? 输出:
Array
(
[a] => blue
[b] => green
[d] => red
[0] => red
)
答案 0 :(得分:5)
这里不要使用array_push()
,这是没有必要的。
只需添加有价值的新密钥。
$c= array("a"=>"blue","b"=>"green");
$c['d'] = 'red';
答案 1 :(得分:5)
只需添加其他键值
即可$c=array("a"=>"blue","b"=>"green");
$c["d"]="red";
print_r($c);
Out put is
Array ( [a] => blue [b] => green [d] => red )
答案 2 :(得分:3)
只需添加新密钥。
$c["y"] = "yellow";
答案 3 :(得分:3)
您可以通过这种方式添加更多元素:
$array = array("a"=>"blue","b"=>"green");
$array['c'] = 'red';
答案 4 :(得分:3)
您是否尝试过使用$c['d'] = 'red';
?
答案 5 :(得分:2)
喜欢它,
$c=array("a"=>"blue","b"=>"green");
$c["d"]="red";
echo "<pre>";
print_r($c);
和输出一样,
Array
(
[a] => blue
[b] => green
[d] => red
)
答案 6 :(得分:2)
将新的键值对推送到数组中,如下所示:
$c["d"] = "red";
将创建数组中未找到的键。
答案 7 :(得分:2)
除了其他之外:你可以将元素推送到数组,但是没有记录方式(http://php.net/array_push)来选择你自己的密钥。所以array_push
自己使用数字索引。
关联数组的一种可能替代方法是使用(匿名)对象(stdClass
)。在这种情况下,您可以设置属性,这是一种更多的OOP编码风格。
$foo = new stdClass;
$foo->bar = 1;
var_dump($foo);
// if you really want to use it as array, you can cast it
var_dump((array) $foo);
答案 8 :(得分:1)
array_push
基本上是一个将数组视为堆栈的操作。堆栈没有密钥,因此使用带有array_push
的关联数组没有意义(因为无论如何都无法检索到array_pop
的密钥)。
如果您想模拟允许同时添加多个条目的array_push
行为,您可以执行以下操作:
$c = array_merge($c, [ "d" => "red", "e" => "some other colour" ]);