具有键值对的array_push()


183

我有一个要向其中添加值的现有数组。

我正在努力实现这一目标,array_push()但无济于事。

下面是我的代码:

$data = array(
    "dog" => "cat"
);

array_push($data['cat'], 'wagon');

我要实现的是将cat作为键添加到wagon作为值的$data数组中,以便按以下代码段进行访问:

echo $data['cat']; // the expected output is: wagon

我该如何实现?

Answers:


334

那么拥有:

$data['cat']='wagon';

警告:$a['123'] = 456;-串“123”被转换为整数键123
bancer


38
$data['cat'] = 'wagon';

这就是将键和值添加到数组的全部操作。


6

例如:

$data = array('firstKey' => 'firstValue', 'secondKey' => 'secondValue');

更改键值:

$data['firstKey'] = 'changedValue'; 
//this will change value of firstKey because firstkey is available in array

输出:

数组([firstKey] => changeValue [secondKey] => secondValue)

要添加新的键值对:

$data['newKey'] = 'newValue'; 
//this will add new key and value because newKey is not available in array

输出:

数组([firstKey] => firstValue [secondKey] => secondValue [newKey] => newValue)


5

您不需要使用array_push()函数,可以将带有新键的新值直接分配给数组。

$array = array("color1"=>"red", "color2"=>"blue");
$array['color3']='green';
print_r($array);


Output:

   Array(
     [color1] => red
     [color2] => blue
     [color3] => green
   )

您还应该强调确切的区别是什么,在这里您使用=代替,用于OP
NitinSingh

1
该代码是错误的。array_push有两个参数,您将收到有关使用错误的警告,结果是调用array_push不会执行任何操作。代码第二行实际上在做什么$array['color3']='green'。这正是@dusoft所做的。您的代码只是对该解决方案的混淆。
理查德·史密斯

@RichardSmith感谢您显示我的错误,我更改了答案。:)
Deepak Vaishnav

0

Array ['key'] =值;

$data['cat'] = 'wagon';

这就是你所需要的。无需为此使用array_push()函数。有时候问题很简单,我们以复杂的方式思考:)。


-3

只需这样做:

$data = [
    "dog" => "cat"
];

array_push($data, ['cat' => 'wagon']);

*在php 7及更高版本中,数组是使用[]而不是()创建的


两个问题:array_push将其2nd +参数添加为新值(而不是键值配对array_merge),PHP 7乐于接受array()数组语法(以及速记[]语法)
Chris Forrence
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.