167 PHP foreach的一个坑,大坑

it2022-05-05  123

第一个数组

array(1) { ["return"]=> array(5) { ["status"]=> string(1) "0" ["errcode"]=> string(2) "ok" ["receivetime"]=> string(19) "2019-07-18 15:56:24" } } 

第二个数组

array(1) { ["return"]=> array(3) { [0]=> array(5) { ["status"]=> string(1) "0" ["errcode"]=> string(2) "ok" ["receivetime"]=> string(19) "2019-07-18 16:26:51" } [1]=> array(5) { ["status"]=> string(1) "2" ["errcode"]=> string(7) "MK:100D" ["receivetime"]=> string(19) "2019-07-18 16:27:42" } [2]=> array(5) { ["status"]=> string(1) "0" ["errcode"]=> string(2) "ok" ["receivetime"]=> string(19) "2019-07-18 16:33:22" } } } 

大家看这两个数组有什么区别吗?是同一个第三方返回的数据(有可能只返回一个,有可能返回多个),如果你用foreach去循环的话得到的完全不一样,第一个和第二个的最大区别是结构不一样,好坑呀,还要加判断,

if(count($result['return']) == 1) { $result = $result; }

太坑了!记录一下,浪费我一小时!

最后还是不行,只好判断数组是1维还是2维

/** * 判断是1维还是二维数组 * @param $array * @return int */ private function TestArray($array){ foreach($array as $v){ if(is_array($v)){ $Int_Array = 2; }else{ $Int_Array = 1; } } return $Int_Array; }

最新回复(0)