假设我有2d数组,其中只有一些行实际上在列中有一些值,而其他行没有任何东西。
例如:只有第5行和第9行有一些数据,其他行是空的。列数是固定的 - 6
我没有为2D数组声明任何大小。
我想找到值为10的所有字段。
for ($t1=0; $t1 < count($array); $t1++) {
for ($t2=0; $t2 < 6; $t2++) {
if($array[$t1][$t2] == 10) {
// do something
}
}
}
现在这段代码不会起作用,因为count($ array)将为2,所以它永远不会迭代第5行和第9行。
我还需要获得找到匹配项的索引。
如何编写代码以使其在这种情况下有效?
答案 0 :(得分:1)
在这种情况下,您可以有效地使用foreach
:
foreach($array as $s => $arrayElement) {
for($t=0; $t<6; $t++) if ($arrayElement[$t] == 10) {
// do something - $s is the row index, $t is the column index
}
}
答案 1 :(得分:0)
我认为,你在定义数组时遇到了问题。可能是,你可以使用这个脚本。
<?php
$cars = array(
array(
"Volvo",
22,
18
),
array(
"BMW",
15,
13
),
array(
"Saab",
5,
2
),
array(
"Land Rover",
17,
15
),
array(
"Mercedes",
22,
19
)
);
$length = count($cars);
for ($i = 0; $i < $length; $i++) {
for ($j = 0; $j < 3; $j++) {
echo $cars[$i][$j] . "</br>";
}
}
?>
我希望,它能解决你的问题。