搜索
您的当前位置:首页正文

php数组函数经常报错的问题Expected parameter 2 to be an array, string given

来源:吉趣旅游网

先说发生了什么吧,事情是这样的,这是更新文件列表的一个功能,由于各种原因导致我返回的数据格式是这样子的:files中已存在的文件是files【0】,新添加的文件返回的只有一个url,即files【1】.
目的:我需要把files【0】处理的跟files【1】一样。

   $fileUrls=[];
            for($i=0;$i<sizeof($data['files']);$i++){
                if(array_key_exists("url", (array)$data['files'][$i])){
                    $fileUrls=array_merge( (array)$fileUrls,(array)$data['files'][$i]['url']);
                }else{
                    $fileUrls=array_merge( (array)$fileUrls,(array)$data['files'][$i]);
                }
            }

思路:遍历原数组,存在的键值对结构的这样存,不存在键值结构的那样存,合并数组为一个数组就行了。
:因为files【1】不是一个数组,所以对于array_…的方法会报错,解决方法就是直接强制类型转化了
总结:下次使用这些数组函数的时候一定要注意传入的对象会不会不是数组,否则到真正测试的时候很有可能出错。
补充一、数组操作的基本函数

因篇幅问题不能全部显示,请点此查看更多更全内容

Top