我必须为学校作业编写一个小脚本,将一周中的日期按时间顺序排列,并在其前面加上索引。虽然星期天必须是第一天,因此必须在它前面有1号。 (2星期一,3星期二等)
我试图通过将数组中的所有元素放在一个索引中来进行此操作,但它似乎不起作用。
$myArray = array("Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday");
for ($i=0; $i<count($myArray); $i++) {
$myArray[$i] = $myArray[$i+1];
echo ($i+1) . " " . $myArray[$i] . "<br>";
}
这是我执行代码时收到的错误信息:
1星期二 周三2 周四3 4星期五 5星期六 6星期日
注意:未定义的偏移量:第13行的C:\ xampp \ htdocs \ opdracht_22.php中的7 7
我想要的结果是:
1周日
星期一2
3星期二
周三4
星期四5
星期五
7月7日星期六
这里有什么我想念的吗?我该如何改进我的代码?
答案 0 :(得分:0)
<body>
<?php
$myArray = array("Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday");
foreach($myArray as $key => $val) {
echo $key++ . " " . $val . "<br>";
}
?>
</body>
答案 1 :(得分:0)
您可以使用临时数组并将它们交换。
如:
$newArray = [];
for($i = 0; $i < count($myArray); $i++){
$newArray[$i+1] = $myArray[$i];
}
$newArray[0] = $newArray[$i]; // for the last one to loop back to the first element of the temporary array
然后只需将newArray的元素复制到myArray
即可 $myArray = $newArray;
让我知道它是怎么回事
答案 2 :(得分:0)
您可以使用简单的if (!mappedProperties.hasPersistentPropertyForField(fieldName)) {
i.remove();
continue;
}
循环
while
输出:
<?php
$myArray = array("Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday");
$array_length = count($myArray); // $array_length is 7
$index = $array_length - 1; // $index is 6 here
$counter = 1; // here $counter is used to print Nth weekday
while(true){
echo $counter . " " . $myArray[$index] . "<br />";
$index = ($index + 1) % $array_length; // performs increment and modulus operation to get the reminder value
++$counter;
if($index == $array_length - 1){ // whenever $index is 6 again the loop will terminate
break;
}
}
?>
答案 3 :(得分:0)
将星期日移到开头后,重新排序键的一种简单方法是使用array_combine和新键的范围。
array_unshift($myArray, array_pop($myArray));
array_combine(range(1,7), $myArray);