PHP迭代缺少行的多维数组

时间:2017-05-28 18:20:03

标签: php

假设我有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行。

我还需要获得找到匹配项的索引。

如何编写代码以使其在这种情况下有效?

2 个答案:

答案 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>";
    }
}

?>

我希望,它能解决你的问题。

相关问题