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

PHP自定义array_column报Cannot redeclare错误的替代代码求助

错误原因

PHP 5.5及以上版本已经内置了原生array_column()函数,自定义同名函数会触发重声明冲突。


方案1:直接使用PHP原生函数(推荐)

直接删除你自定义的array_column()函数即可,原生函数支持更多用法,除提取指定列值外,还可以指定第三参数作为返回数组的索引键:

// 原生函数用法示例
$records = [
    ['id' => 1, 'name' => '张三'],
    ['id' => 2, 'name' => '李四'],
];
// 提取name列
$names = array_column($records, 'name');
// 提取name列,以id为索引
$idToName = array_column($records, 'name', 'id');

方案2:兼容PHP 5.5以下老版本

如果你的运行环境是PHP 5.4及更低版本,没有内置array_column()函数,可以添加函数存在性判断逻辑,避免重声明冲突:

if (!function_exists('array_column')) {
    function array_column($array, $column_name, $index_key = null) {
        $output = [];
        foreach ($array as $item) {
            $value = $item[$column_name];
            if ($index_key !== null) {
                $output[$item[$index_key]] = $value;
            } else {
                $output[] = $value;
            }
        }
        return $output;
    }
}

内容的提问来源于stack exchange,提问作者TaeCool 's

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 12:09:03