>백엔드 개발 >PHP 튜토리얼 >数组遍历问题。

数组遍历问题。

WBOY
WBOY원래의
2016-06-23 13:26:131092검색

有一个数组为:

$arr = array(	'userId'=>array(1,2,3),	'username'=>array('Tom','Rose','Ben'),	'sex'=>array('男','女','男'));


如何把该数组转化为:
  $arr2 =array(       array('userId'=>1,'username'=>'Tom','sex'=>'男'),       array('userId'=>2,'username'=>'Rose','sex'=>'女'),       array('userId'=>3,'username'=>'Ben','sex'=>'男')   ); 

脑子一下子转不过来了


回复讨论(解决方案)

刚发发完贴就想到了解决办法了……

$arr = array(    'userId'=>array(1,2,3),    'username'=>array('Tom','Rose','Ben'),    'sex'=>array('男','女','男'));foreach($arr as $k=>$item) {  foreach($item as $i=>$v) $res[$i][$k] = $v;}print_r($res);
Array(    [0] => Array        (            [userId] => 1            [username] => Tom            [sex] => 男        )    [1] => Array        (            [userId] => 2            [username] => Rose            [sex] => 女        )    [2] => Array        (            [userId] => 3            [username] => Ben            [sex] => 男        ))

另类一点,就是

$arr = array(    'userId'=>array(1,2,3),    'username'=>array('Tom','Rose','Ben'),    'sex'=>array('男','女','男'));$k = array_fill(0, count($arr), array_keys($arr));$v = call_user_func_array('array_map', array_merge(array(null), $arr));$r = array_map('array_combine', $k, $v);print_r($r);

另类一点,就是

$arr = array(    'userId'=>array(1,2,3),    'username'=>array('Tom','Rose','Ben'),    'sex'=>array('男','女','男'));$k = array_fill(0, count($arr), array_keys($arr));$v = call_user_func_array('array_map', array_merge(array(null), $arr));$r = array_map('array_combine', $k, $v);print_r($r);


明白了,谢谢版主~~
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.