如何将键添加到php数组?

时间:2017-07-20 12:13:54

标签: php

$c=array("a"=>"blue","b"=>"green");
array_push($c,$c["d"]="red");
print_r($c);

此代码将密钥添加到数组中。但它也将索引键添加到相同的键/值对。如何避免这个索引键? 输出:

Array
(
    [a] => blue
    [b] => green
    [d] => red
    [0] => red
)

9 个答案:

答案 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" ]);