0

我需要能够循环一个项目数组并从另一个数组中给它们一个值,但我无法完全理解它。

我的阵列

$myarray = array('a','b','c'); 

假设我有一个 foreach 循环,我总共循环了 6 个项目。

如何获得以下输出

item1 = a
item2 = b
item3 = c
item4 = a
item5 = b
item6 = c

我的代码看起来像这样。

$myarray = array('a','b','c'); 
$items = array(0,1,2,3,4,5,6);
foreach ($items as $item) {
   echo $myarray[$item];
}

在线示例。 http://codepad.viper-7.com/V6P238

我当然希望能够循环无限次

4

3 回答 3

6
$myarray = array('a','b','c'); 
$count = count($myarray);
foreach ($array as $index => $value) {
  echo $value . ' = ' . $myarray[$index % $count] . "\n";
}

%模运算符。它返回

$a 的余数除以 $b。

什么意思

0 % 3 = 0
1 % 3 = 1
2 % 3 = 2
3 % 3 = 0
4 % 3 = 1

等等。在我们的例子中,这反映了$myarray我们想要检索的数组的索引。

于 2012-08-01T17:40:48.410 回答
1

如果您想要完成任意数量的循环,您可以使用模数运算符循环遍历您的键:

$loop = //how much you want the loop to go
//...
for ($i = 0, $i < $loop, $i++) {
    $key = $i % count($myarray);
    echo $i, ' = ', $myarray[$key];
}
于 2012-08-01T17:40:43.517 回答
1

我认为您正在寻找的是模运算符。尝试这样的事情:

for ($i = 1; $i <= $NUMBER_OF_ITEMS; $i++) {
    echo "item$i = ".$myarray[$i % count($myarray)]."\n";
}
于 2012-08-01T17:41:29.570 回答