【发布时间】:2021-12-30 08:47:36
【问题描述】:
我在 python 中创建了以下嵌套 for 循环 - 想法是取一个 int 值几个小时,例如 6,然后创建一个从 1-6 的值数组
hours = 6
hoursArray = [6]
convertHours = [] #Creating empty list
for i in hoursArray:
for j in range(i-1): #This will iterate till the value in list - 1
convertHours.append(j+1) #Appending values in new list
hoursList = convertHours + hoursArray
print(hoursList) #adding both the lists
输出 [1、2、3、4、5、6]
这是我对 php 的尝试 - 我对内部循环以及如何在 php 中执行“for j in range(i-1)”以及在 php 中执行“for j in range(i-1)”感到困惑,我应该将数组的最大值放入外循环的范围for($i = 0; $i <= $hoursArray-1; $i++) - 我不知道该怎么做,所以我输入 int 值$hours 来测试它。
<?php
$hours = 6;
$hoursArray = [$hours];
$convertHours =[];
for($i = 0; $i <= $hours-1; $i++) {
for($j = 0; $j <= $i-1; $j++) {
$convertHours = [$j+1];
$hoursList = array_merge($convertHours, $hoursArray);
}
}
var_dump($hoursList);
print_r($hoursList);
?>
输出 数组(2){ [0]=> 整数(5) [1]=> 整数(6) } 大批 ( [0] => 5 [1] => 6 )
任何帮助表示赞赏!
更新:这解决了问题(尽管它不是嵌套循环)
<?php
$hours = 6;
$convertHours =[];
for($i = 0; $i <= $hours-1; $i++) {
$convertHours[] = $i+1;
}
var_dump($convertHours);
?>
输出 = 数组(6){ [0]=> 整数(1) [1]=> 整数(2) [2]=> 整数(3) [3]=> 整数(4) [4]=> 整数(5) [5]=> 整数(6) }
【问题讨论】:
-
在python中你的第一个
for迭代hoursArray(所以只有一次)但在php中你迭代i < 5,这是一个错误吗? -
是的,python 迭代应该取值 5,因为循环进入 1-5,然后将 6 附加到最终合并列表中
-
你为什么要考虑将 python 转换为 php?