Multi-dimensional array looping in php.

Source: Internet
Author: User
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.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.