这将有效
$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;
}
}
}
我不知道为什么
答案 0 :(得分:1)
您忘记了$
字符:
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;
}
}
}
答案 1 :(得分:-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_slice()
来匹配原始length-1
循环中使用for
的行为,这会忽略数组的最后一个元素。我实际上将它移到一个变量,所以它不必每次都通过外部循环,但我在上面的代码中保留它以保持更短。