You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP数组实例化时,能否用简写为多个元素设置相同值?

一行内生成多键同值的PHP数组方法

需要构造一个包含starta、startb、enda、endb四个键的PHP数组,要求starta和startb的值为$updater['kickoff'],enda和endb的值为$updater['finished']。需要在外部函数的数组实例化参数中一行完成,尝试了几种简写写法都触发语法错误,询问是否有可行的简写方式。

尝试过的错误写法

$array =  ['starta', 'startb' => $updater['kickoff'], 'enda', 'endb' => $updater['finished'] ];

$array =  ['starta' = 'startb' => $updater['kickoff'], 'enda' = 'endb' => $updater['finished'] ];

$array =  ['starta' => 'startb' => $updater['kickoff'], 'enda' => 'endb' => $updater['finished'] ];

期望的数组结构

array(
    'starta' => $updater['kickoff'],
    'startb' => $updater['kickoff'],
    'enda'   => $updater['finished'],
    'endb'   => $updater['finished']   
);

可行的实现方式

PHP本身没有原生的多键同值数组简写语法,但可以通过以下几种方式在一行内完成需求:

  • 直接显式声明:最稳妥直观的写法,虽然重复了值,但语法简单无歧义,不会触发错误:

    $array = ['starta' => $updater['kickoff'], 'startb' => $updater['kickoff'], 'enda' => $updater['finished'], 'endb' => $updater['finished']];
    
  • array_merge结合array_fill_keys:适合同值键数量较多的场景,通过array_fill_keys批量生成同值键值对,再合并成最终数组:

    $array = array_merge(array_fill_keys(['starta', 'startb'], $updater['kickoff']), array_fill_keys(['enda', 'endb'], $updater['finished']));
    
  • 解构赋值(PHP 7.1+):利用数组解构语法简化合并操作,代码更紧凑:

    $array = [...array_fill_keys(['starta', 'startb'], $updater['kickoff']), ...array_fill_keys(['enda', 'endb'], $updater['finished'])];
    

内容的提问来源于stack exchange,提问作者Mm-Art-In

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 14:30:42