$c=array("a"=>"blue","b"=>"green");
array_push($c,$c["d"]="red");
print_r($c);
此代码将键添加到数组中。但它也将索引键添加到相同的键/值对..如何避免此索引键? 输出:如何添加密钥到php数组?
Array
(
[a] => blue
[b] => green
[d] => red
[0] => red
)
$c=array("a"=>"blue","b"=>"green");
array_push($c,$c["d"]="red");
print_r($c);
此代码将键添加到数组中。但它也将索引键添加到相同的键/值对..如何避免此索引键? 输出:如何添加密钥到php数组?
Array
(
[a] => blue
[b] => green
[d] => red
[0] => red
)
只需添加新密钥。
$c["y"] = "yellow";
您是否尝试过简单地使用$c['d'] = 'red';
?
不要在这里使用array_push()
这是没有必要的。 只需添加新的键值。
$c= array("a"=>"blue","b"=>"green");
$c['d'] = 'red';
只需添加其他键值这样
$c=array("a"=>"blue","b"=>"green");
$c["d"]="red";
print_r($c);
出放为
Array ([a] => blue [b] => green [d] => red)
不喜欢它的,
$c=array("a"=>"blue","b"=>"green");
$c["d"]="red";
echo "<pre>";
print_r($c);
和输出一样,
Array
(
[a] => blue
[b] => green
[d] => red
)
推新键值对到阵列中,像这样:
$c["d"] = "red";
键没有找到阵内将得到建立。
array_push
基本上是一种将数组视为堆栈的操作。堆栈没有密钥,所以使用array_push
的关联数组没有任何意义(因为无论如何您都无法使用array_pop
来检索密钥)。
如果要模拟的array_push
行为,它允许同时添加多个条目,你可以做到以下几点:
$c = array_merge($c, [ "d" => "red", "e" => "some other colour" ]);
除了别人:你可以把元素的数组,但有没有记录的方式(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);
$arrayName = array(
'bb' => 'aaaa',
'cc' => 'dddd',
'dd' => 'xxxx',
'aa' => 'yyyy',
'ee' => 'rrrr');
和
$arrayname = ['aaaa','dddd','xxxx','yyyy','rrrr'];
这个键是数字,相同
$arrayName = array(
0 => 'aaaa',
1 => 'dddd',
2 => 'xxxx',
3 => 'yyyy',
4 => 'rrrr');
array_push不作出关联数组,仅索引的数组任何意义。 – GordonM
想知道为什么这个问题是downvoted!它很明显,并显示了代码 –