如果我想循环遍历数组然后将它们用作循环增量计数器,我该怎么做?
E.g。我最多有5个值存储在一个数组中。我想循环遍历它们,并且在forst循环中我想使用特定值,然后是第二个特定值。
下面的伪代码,但是如何将第二个数组引入图片?第一个范围是动态的,空的或最多5个值。第二个将被修复。
$array = array(2,6,8); // Dynamic
$array2 = array(11,45,67,83,99); Fixed 5 values
foreach ($array as $value) {
// First loop, insert or use both 2 and 11 together
// Second loop, insert or use both 6 and 45
// Third loop, insert or use both 8 and 67
}
答案 0 :(得分:2)
使用$index => $val
:
foreach ($array2 as $index => $value) {
if ( isset($array[ $index ]) ) {
echo $array[ $index ]; // 2, then 6, then 8
}
echo $value; // 11, then 45, then 67, then 83, then 99
}
在此处查看:[{3}}
如果你希望它在第一个数组结束时停止,那么循环遍历第一个数组:
foreach ($array as $index => $value) {
echo $value; // 2, then 6, then 8
echo $array2[ $index ]; // 11, then 45, then 67
}
在此处查看:[{3}}
答案 1 :(得分:1)
这是一个干净而简单的解决方案,它不使用无用且繁重的非标准库:
$a = count($array);
$b = count($array2);
$x = ($a > $b) ? $b : $a;
for ($i = 0; $i < $x; $i++) {
$array[$i]; // this will be 2 the first iteration, then 6, then 8.
$array2[$i]; // this will be 11 the first iteration, then 45, then 67.
}
我们只是使用$i
来识别主for
循环中两个数组的相同位置,以便将它们一起使用。主for
循环将迭代正确的次数,以便两个数组都不会使用未定义的索引(导致通知错误)。
答案 2 :(得分:1)
你可以试试这个 -
foreach ($array as $index => $value) {
echo $array[ $index ]; // 2, then 6, then 8
echo $array2[ $index ]; // 11, then 45, then 67
}
答案 3 :(得分:0)
确定两个数组的最小长度。
然后将索引i
从1循环到最小长度。
现在您可以使用两个数组的i
- 元素
答案 4 :(得分:0)
这是我认为你想要的:
foreach($array as $value){
for($x = $value; $array[$value]; $x++){
//Do something here...
}
}
答案 5 :(得分:0)
您可以使用MultipleIterator:
$arrays = new MultipleIterator(
MultipleIterator::MIT_NEED_ANY|MultipleIterator::MIT_KEYS_NUMERIC
);
$arrays->attachIterator(new ArrayIterator([2,6,8]));
$arrays->attachIterator(new ArrayIterator([11,45,67,83,99]));
foreach ($arrays as $value) {
print_r($value);
}
将打印:
Array ( [0] => 2 [1] => 11 )
Array ( [0] => 6 [1] => 45 )
Array ( [0] => 8 [1] => 67 )
Array ( [0] => [1] => 83 )
Array ( [0] => [1] => 99 )
如果您希望它要求两个数组都有值,请将标志更改为
MultipleIterator::MIT_NEED_ALL|MultipleIterator::MIT_KEYS_NUMERIC
然后会给出
Array ( [0] => 2 [1] => 11 )
Array ( [0] => 6 [1] => 45 )
Array ( [0] => 8 [1] => 67 )