Php:嵌套for循环不工作
这会奏效的Php:嵌套for循环不工作,php,Php,这会奏效的 $arrayOrdenado = array(); if ($rows[4][2] == $orden[0]) { array_push($arrayOrdenado,$rows[4]); } 但在循环过程中,不会发现任何巧合 for ($i = 0; $i < $orden.length - 1; $i++) { for ($y = 0; $y < $rows.length - 1; $y++) { if ($rows[y][2]
$arrayOrdenado = array();
if ($rows[4][2] == $orden[0]) {
array_push($arrayOrdenado,$rows[4]);
}
但在循环过程中,不会发现任何巧合
for ($i = 0; $i < $orden.length - 1; $i++) {
for ($y = 0; $y < $rows.length - 1; $y++) {
if ($rows[y][2] == $orden[i]) {
array_push($arrayOrdenado, $rows[y]);
break;
}
}
}
for($i=0;$i<$orden.length-1;$i++){
对于($y=0;$y<$rows.length-1;$y++){
if($rows[y][2]=$orden[i]){
array_push($arrayOrdenado,$rows[y]);
打破
}
}
}
我不知道你为什么忘记了
$
字符:
for ($i=0; $i < count($orden)-1; $i++) {
for ($y=0; $y < count($rows)-1; $y++) {
if($rows[$y][2]==$orden[$i]){
array_push($arrayOrdenado,$rows[$y]);
break;
}
}
}
for($i=0;$i
您忘记了$
字符:
for ($i=0; $i < count($orden)-1; $i++) {
for ($y=0; $y < count($rows)-1; $y++) {
if($rows[$y][2]==$orden[$i]){
array_push($arrayOrdenado,$rows[$y]);
break;
}
}
}
for($i=0;$i
使用foreach
在阵列上循环
foreach (array_slice($orden, 0, -1) as $o) {
foreach (array_slice($rows, 0, -1) as $row) {
if ($row[2] == $o) {
$arrayOrdenado[] = $row;
}
}
}
另一种书写方式是:
foreach (array_slice($rows, 0, -1) as $row) {
if (in_array($row[2], array_slice($orden, 0, -1)) {
$arrayOrdenado[] = $row;
}
}
我正在使用
array\u slice()
来匹配在原始for
循环中使用length-1
的行为,这忽略了数组的最后一个元素。实际上,我会将其移动到一个变量,这样它就不必每次都通过外部循环执行,但我在上面的代码中保留了这种方式,以使其更短。使用foreach
在数组上循环
foreach (array_slice($orden, 0, -1) as $o) {
foreach (array_slice($rows, 0, -1) as $row) {
if ($row[2] == $o) {
$arrayOrdenado[] = $row;
}
}
}
另一种书写方式是:
foreach (array_slice($rows, 0, -1) as $row) {
if (in_array($row[2], array_slice($orden, 0, -1)) {
$arrayOrdenado[] = $row;
}
}
我正在使用
array\u slice()
来匹配在原始for
循环中使用length-1
的行为,这忽略了数组的最后一个元素。实际上,我会把它移到一个变量中,这样它就不必每次都通过外部循环执行,但我在上面的代码中就这样做了,以使它更短。$rows.length-1
/$orden.length
是一个javascript东西count($rows)
/count($orden)
是php。在php中,
用于浓缩,如“a”。“b”
与“ab”
相同。您的代码可能会抛出错误,如未定义常量、假定长度。请详细说明您的问题。你想做什么?我有一个数组($orden),它按顺序包含ID。我想订购第二个数组($rows),它包含数组,ID是[2]值,$rows[y][2]具有静态[2]。打开错误报告(E\u ALL)
,您应该会收到警告。为什么要从长度中减去1?这将忽略每个数组中的最后一个元素。这是故意的吗?$rows.length-1
/$orden.length
是javascript的东西count($rows)
/count($orden)
是php。在php中,
用于浓缩,如“a”。“b”
与“ab”
相同。您的代码可能会抛出错误,如未定义常量、假定长度。请详细说明您的问题。你想做什么?我有一个数组($orden),它按顺序包含ID。我想订购第二个数组($rows),它包含数组,ID是[2]值,$rows[y][2]具有静态[2]。打开错误报告(E\u ALL)
,您应该会收到警告。为什么要从长度中减去1?这将忽略每个数组中的最后一个元素。这是故意的吗?谢谢!我最近写的javascript太多了。。这加上Jonathan的回答也解决了我的问题,我如何在foreach循环中实现$I和$y这样的计数器?很高兴看到它有所帮助,使用多种语言有时会让人困惑,而不是$orden。长度应该使用count($orden),所以$ordenkey
将是新的$I
谢谢!我最近写的javascript太多了。。这加上Jonathan的回答也解决了我的问题,我如何在foreach循环中实现像$I和$y这样的计数器?很高兴看到它有所帮助,使用多种语言有时会让人困惑,而不是$orden。长度应该使用count($orden),所以$ordenkey
将是新的$I