您好,欢迎访问一九零五行业门户网

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);
尝试过在 $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这个是区服也是在遍历里面做循环吗?
已经解决了。
其它类似信息

推荐信息