同时循环多个数组

时间:2011-10-02 23:34:01

标签: php

完成家庭作业,我不确定我是否可以解决如何解决这个问题。我有两个具有相同数值的数组:

$monthsShort = array("Jan", "Feb", ..., "Nov", "Dec");
$monthsLong = array("January", "February", ..., "November", "December");

我需要一个循环来遍历它们并生成如下所示的输出:

  

1月1日

     

2月2日

     

...

     

12月12日

我真的不知道从哪里开始,因为我在教科书中找不到类似的问题。我确实找到了这个:Foreach loop with multiple arrays,但我不确定它是如何工作的。非常感谢任何帮助。

7 个答案:

答案 0 :(得分:5)

for ($i = 0; $i < 12; $i++) {
  $p = $i+1;
  echo "$p {$monthsShort[$i]} {$monthsLong[$i]}";
}

答案 1 :(得分:4)

您可以使用以下语法获取数组的单个索引:

$myArray = array("Jan", "Feb", "etc.");
echo $myArray[0]; // prints "Jan"
echo $myArray[1]; // prints "Feb"

唯一的技巧是你希望索引也是一个变量,你可以使用for循环。这将打印“JanFebetc。”:

for($i = 0; $i < count($myArray); $i++) {
    echo $myArray[$i];
}

这两个一起应该允许你同时遍历两个数组。

答案 2 :(得分:3)

您选择的示例是数组中的数组,您实际上有两个要一次迭代的数组。那是不同的。

您可以先将两个数组与array_mapDocs组合,然后遍历新数组:

$monthsShort = array("Jan", "Feb", '...', "Nov", "Dec");
$monthsLong = array("January", "February", '...', "November", "December");

$map = array_map(NULL, $monthsShort, $monthsLong);

foreach($map as $month => $value)
{
    list($short, $long) = $value;
    printf("%d %s %s\n", $month+1, $short, $long);
}

请参阅demo。在编程中经常有一个问题的解决方案,我选择array_map来轻松迭代一个数组。

答案 3 :(得分:1)

$index = 0;
foreach ($monthsShort as $month) {
    echo $index+1 . " " . $month . " " . $monthsLong[$index] . "\n";
    $index++;
}

容易!

答案 4 :(得分:1)

我会使用for循环执行此操作,如下所示:

for($i = 0; $i < 12; $i++)
{
    printf("%d %s %s<br />\n", $i + 1, $monthsShort[$i], $monthsLong[$i]);
}

答案 5 :(得分:0)

$output = '';
$count = count($monthsShort);
for ($i = 0; $i < $count; $i++) {
  $output .= $i . ' ' . $monthsShort[$i] . ' ' . $monthsLong[$i] . '<br />';
}
echo $output;

答案 6 :(得分:0)

使用count函数计算数组中的项目

<?php
    $monthsShort = array("Jan", "Feb", "Nov", "Dec");
    $monthsLong = array("January", "February", "November", "December");

    for($i=0;$i<count($monthsLong);$i++){
        echo $i." ".$monthsShort[$i]." ".$monthsLong[$i]."\n";
    }

?>

输出

0 Jan January
1 Feb February
2 Nov November
3 Dec December