implode()参数错误求助:传入字符串而非数组该如何解决?
解决implode参数类型错误问题
错误原因
你遇到的错误核心是:implode()函数要求待拼接的内容必须是数组类型,但你传入的$info['long']是字符串,同时代码里重复给$userLogin->longitude赋值属于无效操作。
解决方案
根据$info['long']的实际数据类型,选择对应处理方式:
如果
$info['long']本身就是单个字符串
直接赋值即可,完全不需要使用implode():$userLogin->longitude = $info['long'];如果
$info['long']可能是数组或字符串(兼容两种场景)
先判断数据类型,数组则拼接,字符串直接使用:$userLogin->longitude = is_array($info['long']) ? implode(',', $info['long']) : (string)$info['long'];如果
$info['long']是带分隔符的字符串,需要规范格式
可先将字符串转成数组过滤无效值,再重新拼接:// 过滤空值与重复分隔符 $longArray = array_filter(explode(',', $info['long'])); $userLogin->longitude = implode(',', $longArray);
内容的提问来源于stack exchange,提问作者Ogoere biwei
相关产品推荐
相关产品推荐

