带有键值对的array_push()

Posted

技术标签:

【中文标题】带有键值对的array_push()【英文标题】:array_push() with key value pair 【发布时间】:2010-11-24 05:07:55 【问题描述】:

我有一个想要添加值的现有数组。

我正在尝试使用array_push() 来实现这一点,但无济于事。

下面是我的代码:

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

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

我想要实现的是将 cat 作为键添加到 $data 数组中,并以 wagon 作为值,以便像在 sn-p 中一样访问它下面:

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

我怎样才能做到这一点?

【问题讨论】:

【参考方案1】:

那么拥有呢:

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

【讨论】:

警告:$a['123'] = 456; - 字符串 '123' 被转换为整数键 123。 对于整数键,您不想将它们包装到引号/字符串中。 不一定。如果其他一些键是像 '123a' 这样的字符串,则可能需要为所有项目保留字符串键。【参考方案2】:

如果你需要添加多个 key=>value,那么试试这个。

$data = array_merge($data, array("cat"=>"wagon","foo"=>"baar"));

【讨论】:

也可以使用循环。 循环没有帮助。如果要推送具有重复键名的值,您必须使用array_merge【参考方案3】:
$data['cat'] = 'wagon';

这就是向数组添加键和值所需的全部内容。

【讨论】:

【参考方案4】:

例如:

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

用于更改键值:

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

输出:

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

用于添加新的键值对:

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

输出:

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

【讨论】:

【参考方案5】:

你不需要使用array_push()函数,你可以直接用新键给数组赋值。..

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


Output:

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

【讨论】:

您还应该突出显示确切的区别,在这里您使用 = 而不是 , 用于 OP 此代码错误。 array_push 有两个参数,你会得到一个警告,说明你使用它的错误,结果是对 array_push 的调用什么都不做。您的代码的第二行实际上在做的只是$array['color3']='green'。这正是@dusoft 上面所做的。您的代码只是对该解决方案的混淆。 @RichardSmith 谢谢你指出我的错误,我已经改变了我的答案。 :)【参考方案6】:

数组['key'] = 值;

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

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

【讨论】:

【参考方案7】:

就这样做吧:

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

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

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

【讨论】:

两个问题:array_push 将其第二个以上的参数添加为新值(不是像 array_merge 那样的键值对),PHP 7 很乐意接受 array() 数组语法(以及速记[] 语法)

以上是关于带有键值对的array_push()的主要内容,如果未能解决你的问题,请参考以下文章

Restkit 返回具有 0 个键值对的对象数组

键值对的聚类

C# 键值对的类型

在事先不知道键值对的情况下迭代 v-for 中的数组

获取 RocksDB 中键值对的总数

Python字典键值对的添加和遍历