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


how to get the array not by key in loop?

有一个循环:

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

和阵列$data['user'].格式数组为:

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

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

第二次尝试。您可以使用 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. 中使用next。while 循环,因为 next 前进到下一项并返回它。但在这种情况下,您有不同的循环,因此您需要将currentnext结合起来以获取当前项目,然后前进到下一行。

或者,您可以使用each()

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

也许这就是你需要的:

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