如何通过键循环获取数组?

时间:2014-11-24 10:54:24

标签: php

有一个循环:

foreach($data['data'] as $value => $key){
    //ODO
}

数组$data['user']。 格式数组是:

array(2) {
  [472]=>
  array(15) {
  ...
  }
[456] => 
array(16){
}
}

如何为循环的每次迭代获取数组元素?

2 个答案:

答案 0 :(得分:3)

第二次尝试。您可以使用reset()current()next()来转到数组中的下一个项目。这样,您可以在迭代第一个数组时在第二个数组上运行游标:

$users = $data['user'];
reset($users);
foreach($data['data'] as $value => $key)
{
  $res = current($users);
  next($users);
  // Use $res here.
}

注意,您在循环中命名了变量$value$key,但反之亦然。第一个是关键。

通常你会在do..while循环中使用next,因为接下来会前进到下一个项目并返回它。但在这种情况下,您有不同的循环,因此您需要合并currentnext以获取当前项目,然后前进到下一行。

或者,您可以使用each()

$users = $data['user'];
reset($users);
foreach($data['data'] as $value => $key)
{
  list($userKey, $res) = each($users);

  // Use $res here.
}

答案 1 :(得分:1)

也许这就是你所需要的:

foreach (array_keys($data['user']) as $key) {
    echo $data['user'][$key];
    echo $data['data'][$key];
}