foreach循环遍历多维数组,只有echo数组包含特定值

时间:2015-01-11 20:07:53

标签: php arrays multidimensional-array foreach

我有一个存储在$t_comments中的多维数组,看起来像这样:

Array (
    [0] => Array
        (
            [0] => 889
            [1] => First comment
            [2] => 8128912812
            [3] => approved
        )

    [1] => Array
        (
            [0] => 201
            [1] => This is the second comment
            [2] => 333333
            [3] => deleted
        )

    // There is more...
)

目前,我像这样遍历数组:

foreach($t_comments as $t_comment) {
    echo $t_comment[0]; // id
    echo $t_comment[1]; // comment
    echo $t_comment[2]; // timestamp
    echo $t_comment[3]; // status
}

我想循环遍历数组,只显示值为approved的数组(如上所示)。 如何考虑性能时如何执行此操作

1 个答案:

答案 0 :(得分:1)

最好的解决方案是首先不必检查。

如果您控制了夸大$ t_comment数组的源,则可以使其不发送未批准的注释。

例如,如果您有类似的内容:

$t_comments = get_comments

您可以使用以下内容:

$t_comments = get_approved_comments

但是如果你不能那么你将不得不遍历每个数组寻找你想要的东西。

要做到这一点,你必须在你的foreach中放一个“if”来检查你的变量内容,这样你就知道它已被批准,然后你知道你可以显示它,并回应它。

示例:

foreach($t_comments as $t_comment) {
    if($t_comment[3]=="approved"){
          echo $t_comment[0];
          echo $t_comment[1];
          echo $t_comment[2];
          echo $t_comment[3]; 
    }
}