php中多維陣列迴圈遍曆問題。

來源:互聯網
上載者:User
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);

嘗試過在 $data[] = $val;裡面加上key但是擷取的資訊就不全了。$result返回來的可能是多條使用者資訊,列印只列印了單條出來,其他的結構都是一樣的。求幫忙


回複討論(解決方案)

求幫幫忙,發現一個問題,就是這個方法遍曆的時候,如果返回的是多個使用者的,它全都在一個array裡面顯示了,id跟著往下走的。

沒人嘛,技術大大呢。

你這是一個4維以上的數組,你打算做什麼呢?
按你樣本的代碼,輸出的是一維數組。需求是這樣嗎?

你這是一個4維以上的數組,你打算做什麼呢?
按你樣本的代碼,輸出的是一維數組。需求是這樣嗎?


嗯,就是轉化成一維之後發現如果使用者資料有多條的話,他的下標就會一直增加,沒辦法去迴圈遍曆了,我現在想做的就是查詢出10個使用者資料,然後擷取到使用者名稱字、區服、頭像、性別列表顯示出來。不知道怎麼來寫迴圈

你是要取 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] =>         )

現在的問題是head欄位裡面的頭像圖片怎麼取呢在我的foreach遍曆裡面加還是取出$new_arr再去遍曆呢,servercode這個是區服也是在遍曆裡面做迴圈嗎?

已經解決了。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    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.