php - Warning: array_merge(): Argument #3 is not an array
PHPz
PHPz 2017-04-11 10:12:33
[PHP讨论组]

后台代码是这样写的
$data['goods'] = array_merge($goods, $cat_goods, $all_goods);
我之前都是传两个数组,现在传三个会报错,何解??
我查了手册,手册上没有给出解决办法,希望大家指点一下感谢

谢谢大家,我自己解决吧 ,毕竟没什么复杂的

PHPz
PHPz

学习是最好的投资!

全部回复(6)
高洛峰

谢谢邀请。array_merge()的参数必须保证都是数组类型的才可以啊!你这错误很明显有不是数组类型的。你分别获取一下对应的数据类型看看就知道啦

var(gettype($goods));
var(gettype($cat_goods));
var(gettype($all_goods));

你测试一下看看是不是有不是array的

天蓬老师

之前没看题目就回答了,题目的意思是,第三个参数不是数组,你可以先用is_arday()判断一个变量是不是有效的数组。

PHPz

报错已经很明显了, 你穿的第三个参数不是一个数组

ringa_lee

array_merge的参数必须要保证都是数组类型的。你的三个参数确定都是数组类型了吗

天蓬老师

很明显报错了啊。虽然你的初始化$all_goods 是空数组,但是后面查询的时候有可能查询出来的就是空。所以不能保证$all_goods 就是数组啊

伊谢尔伦

强制转换下就不报错了

$data['goods'] = array_merge((array)$goods, (array)$cat_goods, (array)$all_goods);
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号