Home >Backend Development >PHP Tutorial >php中多维数组循环遍历问题。
Array( [head] => Array ( [cmd] => 105 [appKey] => 53 [reqSerialNo] => [version] => [ctalkId] => 1 [seqNo] => 1 [seqCnt] => 1 [retCode] => 0 [retStr] => OK ) [respInfo] => Array ( [userInfos] => Array ( [0] => Array ( [userIdinfo] => Array ( [uuid] => 100000124 [type] => 0 [id] => 100000124 ) [userKeyInfos] => Array ( [1] => Array ( [value] => 100000124 [valueName] => sdkUserPriId [valueKeyType] => 1 [accessLvl] => 0 [reserveValue] => Array ( ) [reserve] => Array ( ) ) [2] => Array ( [value] => 张尼玛 [valueName] => nickName [valueKeyType] => 2 [accessLvl] => 0 [reserveValue] => Array ( ) [reserve] => Array ( ) ) [3] => Array ( [value] => [ { "bigKey" : "", "bigUrl" : "group2/M00/00/05/wKgBC1TAV06BS21_AABoZKLBGRM281.png", "smallKey" : "", "smallUrl" : "group2/M00/00/05/wKgBC1TAV07RoHGEAAAXAgS_rVM330.png" }] [valueName] => head [valueKeyType] => 3 [accessLvl] => 0 [reserveValue] => Array ( ) [reserve] => Array ( ) ) [5] => Array ( [value] => 1 [valueName] => gender [valueKeyType] => 5 [accessLvl] => 0 [reserveValue] => Array ( ) [reserve] => Array ( ) ) [25] => Array ( [value] => 0 [valueName] => lastUpdateTime [valueKeyType] => 25 [accessLvl] => 0 [reserveValue] => Array ( ) [reserve] => Array ( ) ) [71] => Array ( [value] => 2 [valueName] => servercode [valueKeyType] => 71 [accessLvl] => 0 [reserveValue] => Array ( ) [reserve] => Array ( ) ) ) [userInfoReserve] => Array ( ) ) ) ))
function arr_foreach ($arr) { static $data; if (!is_array ($arr)) { return $data; } foreach ($arr as $key => $val ) { if (is_array ($val)) { arr_foreach ($val); } else { //$data[$key]=$val; $data[] = $val; } } return $data; } $res=arr_foreach($result ); print_r($res);
求帮帮忙,发现一个问题,就是这个方法遍历的时候,如果返回的是多个用户的,它全都在一个array里面显示了,id跟着往下走的。
没人嘛,技术大大呢。
你这是一个4维以上的数组,你打算做什么呢?
按你示例的代码,输出的是一维数组。需求是这样吗?
你这是一个4维以上的数组,你打算做什么呢?
按你示例的代码,输出的是一维数组。需求是这样吗?
你是要取 userKeyInfos 键下的内容吗?
如果要代码,请给出原始数组的 var_export 打印结果
你是要取 userKeyInfos 键下的内容吗?
如果要代码,请给出原始数组的 var_export 打印结果
$new_arr = array(); foreach ($result['respInfo']['userInfos'] as $k => $a) { foreach ($a['userKeyInfos'] as $v) { $new_arr[$k][$v['valueName']] = $v['value']; } } print_r($new_arr);
Array( [0] => Array ( [sdkUserPriId] => 100000124 [nickName] => 张尼玛 [head] => [ { "bigKey" : "", "bigUrl" : "group2/M00/00/05/wKgBC1TAV06BS21_AABoZKLBGRM281.png", "smallKey" : "", "smallUrl" : "group2/M00/00/05/wKgBC1TAV07RoHGEAAAXAgS_rVM330.png" }] [gender] => 1 [lastUpdateTime] => 0 [servercode] => 2 ) [1] => Array ( [sdkUserPriId] => 100000125 [nickName] => 100000125 [head] => [ { "bigKey" : "", "bigUrl" : "group1/M00/00/1D/wKgBeVUTdUCRpZD9AAF6ty8lLh4759.png", "smallKey" : "", "smallUrl" : "group1/M00/00/1D/wKgBeVUTdUDyBV08AAAKBhUiAA8391.png" }] [gender] => 0 [lastUpdateTime] => 0 [servercode] => )
已经解决了。