迭代数组的一个维度,直到找到一个值

时间:2016-06-20 10:19:16

标签: php arrays loops

我有一个如下数组

$array[$id][$iterator][test1][test2][a][b][c][d]

我想针对$iterator的第一个实例测试每个test1=not null(如果是,请使用a,b,c d)
 否则使用test2=not null的第一个实例使用(a,b,c,d)
否则使用" ---"

我不知道如何在查找test1test2的第一个实例时获取循环,或者在这种情况下是否有比循环更好的构造?

1 个答案:

答案 0 :(得分:3)

打破迭代或循环

告诉它休息一下:)

foreach ($array as $item) {
    if ($item == 'I the great overlord command you to stop iterating!') {
        break;
    }
}

如果你想......

如果你只是想知道你的数组中是否有某个值,你可以这样做:

if (in_array('The value you are looking for', $thatArrayItShouldBeIn)) {
    die("Its in! Its in! Yippie!");
}

来自评论

告诉我,如果我错了,但是根据你的评论我明白你希望你的迭代在某个循环中突破?

foreach ($array as $key => $item) {
    // Keys start at 0, so the first item is 0
    if ($key == 3) {
        // We'll stop looping at the 4th iteration
        break;
    }
}

再看看

如果你真的有一个包含大量图层的数组,你只想为每次迭代检查一个值,你可以这样做:

foreach ($array[$id]['iterator'] as $item) {
    if ($item['test1'] == true) {
        // Do something
    }
}    }