完成家庭作业,我不确定我是否可以解决如何解决这个问题。我有两个具有相同数值的数组:
$monthsShort = array("Jan", "Feb", ..., "Nov", "Dec");
$monthsLong = array("January", "February", ..., "November", "December");
我需要一个循环来遍历它们并生成如下所示的输出:
1月1日
2月2日
...
12月12日
我真的不知道从哪里开始,因为我在教科书中找不到类似的问题。我确实找到了这个:Foreach loop with multiple arrays,但我不确定它是如何工作的。非常感谢任何帮助。
答案 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_map
Docs组合,然后遍历新数组:
$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