即使这些数组之一为空,我如何在 php 中合并数组?

现在我使用,array_merge_recursive但如果我的 3 个数组之一为空,我会得到echo json_encode($array4);


null

arrays我的php文件中有 3 个:


$array1 = json_decode($array1, TRUE);

$array2 = json_decode($array2, TRUE);

$array3 = json_decode($array3, TRUE);

如果我echo每个数组:


echo json_encode($array1); = {"results":[{"cat_id":2,"cat_name":"bicycle repairs"}]}


echo json_encode($array2); = {"results":[{"cat_id":"4","cat_name":"plumber"},{"cat_id":"5","cat_name":"Electrician"},{"cat_id":"6","cat_name":"vet"}]}


echo json_encode($array3);= {"results":[{"cat_id":3,"cat_name":"Doctor"}]}


然后我像这样将这些数组合并在一起:


$array4 = array_merge_recursive($array1['results'], $array2['results'], $array3['results']);

这会给我:


[{"cat_id":2,"cat_name":"bicycle repairs"},{"cat_id":"4","cat_name":"plumber"},{"cat_id":"5","cat_name":"Electrician"},{"cat_id":"6","cat_name":"vet"},{"cat_id":3,"cat_name":"Doctor"}]

但是,如果$array1, $array2or 中的任何一个$array3为空,则$array4不起作用。我怎样才能克服这个问题?


catspeake
浏览 148回答 2
2回答

米琪卡哇伊

我会做一个辅助函数来检查你的变量是否是一个数组。如果不只是让它成为一个空的function MakeArray($arr){    if (!is_array($arr)) return [];    return $arr;}$arr1 = MakeArray([1,2,4]);$arr2 = MakeArray([5,6]);$arr3 = MakeArray(NULL);这样你就可以保证即使你传递了一个字符串,它也会工作
打开App,查看更多内容
随时随地看视频慕课网APP