Multi-dimensional array looping in 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] = & gt; 100000124) [userKeyInfos] => Array ([1] => Array ([value] => 100000124 [valueName] => sdkUserPriId [valueKeyType] => 1 [accessLvl] => 0 [reserveValue] => Array () [reserve] => Array ()) [2] => Array ([value] => Zhang Nima [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 ()))))
This is the result of array printing. on the Internet, we can see a method to convert a multi-dimensional array into a one-dimensional array. However, the result of loop traversal can only be obtained by subscript.
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);
I tried to add the key to $ data [] = $ val; but the information obtained is incomplete. $ Result may return multiple user messages. only one output is printed, and other structures are the same. Please help
Reply to discussion (solution)
For help, I found a problem, that is, when this method is traversed, if multiple users are returned, it will all be displayed in an array, and the id will go down.
No one. The technology is huge.
You are an array of more than 4 dimensions. What are you going to do?
According to your sample code, the output is a one-dimensional array. Is the requirement true?
You are an array of more than 4 dimensions. What are you going to do?
According to your sample code, the output is a one-dimensional array. Is the requirement true?
Well, after being converted into one dimension, we find that if there are more than one user base, his subscript will continue to increase and there is no way to traverse it cyclically, what I want to do now is to query 10 user data and obtain the username, District server, profile picture, and gender list. I don't know how to write a loop.
Do you want to get the content under the userKeyInfos key?
If you want code, provide the var_export print result of the original array.
Do you want to get the content under the userKeyInfos key?
If you want code, provide the var_export print result of the original array.
$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);
This is the result of the traversal.
Array ([0] => Array ([sdkUserPriId] => 100000124 [nickName] => Zhang Nima [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/1 D/wKgBeVUTdUCRpZD9AAF6ty8lLh4759.png", "smallKey": "", "smallUrl ": "group1/M00/00/1 D/wKgBeVUTdUDyBV08AAAKBhUiAA8391.png"}] [gender] => 0 [lastUpdateTime] => 0 [servercode] =>)
Now the question is, how can I retrieve the avatar image in the head field? add it in my foreach traversal or retrieve $ new_arr and traverse it again, servercode is the partition server and does it loop through traversal?
Solved.