我有一个数组如下,有不同数量的顶级数组:
Array
(
[1534] => Array
(
[userid] => 1534
[a1] => 3
[a2] => 6
[a3] => 5
[groupID] => 2
[total] => 109
)
[1535] => Array
(
[userid] => 1535
[a1] => 6
[a2] => 4
[a3] => 1
[groupID] => 2
[total] => 125
)
)
除了foreach之外还有其他选择吗:
Array
{
[userid] => Array
(
[1534] => 1534
[1535] => 1535
)
[a1] => Array
(
[1534] => 3
[1535] => 6
)
[a2] => Array
(
[1534] => 6
[1535] => 4
)
[a3] => Array
(
[1534] => 5
[1535] => 1
)
[groupID] => Array
(
[1534] => 2
[1535] => 2
)
[total] => Array
(
[1534] => 109
[1535] => 125
)
)
?目的是遍历输出
中表的每一行的新数组答案 0 :(得分:3)
您不需要更改布局只是为了遍历它。它可以在不改变的情况下完成。
$keys = array_keys(current($array));
$len = count($array);
foreach($keys as $key){
// Access the key first
for($i=0;$i<$len; $i++){
// access the row later
echo $array[$i][$key];
}
}
答案 1 :(得分:1)
除了foreach
之外还有其他选择吗?
你想要做的任何事情看起来像迭代意味着使用for / foreach循环。
即。如果您确实需要(请注意shiplu.mokadd.im的答案)重新格式化数组,您需要一些代码,如下所示:
$result = array();
foreach($input as $i => $row) {
foreach($row as $key => $value) {
$result[$key][$i] = $value;
}
}