【问题标题】:Spread Operator for arrays with string keys in PHP [duplicate]PHP中带有字符串键的数组的扩展运算符[重复]
【发布时间】:2021-08-11 20:18:08
【问题描述】:

PHP 支持扩展运算符PHP Spread Syntax in Array Declaration

$ary = [3, 4, 5];
return [1, 2, ...$ary]; // same as [1, 2, 3, 4, 5]

现在我正在“对象”上尝试一个简单的扩展运算符,但它失败了

 $a = ['a' => 1];
 $b = ['b' => 2];
 $c = [...$a, ...$b]; // Expected $c = ['a' => 1, 'b' => 2]

我错过了什么吗?

无法使用字符串键解包数组

【问题讨论】:

  • 我不明白你为什么称它为“对象”。除此之外,错误消息不是已经告诉您发生了什么吗?
  • 亲爱的,这个功能将在 php 8.1 等中出现,目前不支持。
  • 即使您链接到的问题也在答案中专门解决了这个问题:“警告:解压的数组/Traversable 只能有整数键。”

标签: php arrays


【解决方案1】:

php 根本不支持,要获得预期的结果,您需要使用array_merge

$a = ['a' => 1];
$b = ['b' => 2];
$c = array_merge($a, $b); // this will have $c = ['a' => 1, 'b' => 2]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-09
    • 2018-06-16
    • 1970-01-01
    • 2020-04-13
    • 2013-02-16
    • 2020-06-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多