我可以用foreach迭代两个大小相等的循环吗?

Ada*_*dam 10 php foreach for-loop

我是PHP的新手.我有两个阵列$array1,$array2大小相同.我一直在使用foreach循环迭代数组,如下所示:

foreach($array1 as $element1) {
      //Do stuff with $element1
}
Run Code Online (Sandbox Code Playgroud)

foreach($array2 as $element2) {
      //Do stuff with $element2
}
Run Code Online (Sandbox Code Playgroud)

但现在我想在同一时间通过两个阵列迭代,让我有机会获得这两个$element1$element2在循环体.

我怎么做?

Kin*_*nch 10

while (($element1 = next($array1)) !== false) {
  $element2 = next($array2);
  // Do something
}
Run Code Online (Sandbox Code Playgroud)

但它会失败,如果false是允许值$array1.如果(在这种情况下)false不允许$array2,您可以只交换两者

一个"foreach" - 解决方案(如果两者共享相同的密钥)

foreach ($array1 as $i => $element1) {
  $element2 = $array2[$i];
  // Do something
}
Run Code Online (Sandbox Code Playgroud)

第三种(我认为相当不错)解决方案,只允许原始类型 $array1

foreach (array_combine(array_values($array1), array_values($array2)) as $element1 => $element2) {
  // Do something
}
Run Code Online (Sandbox Code Playgroud)