【问题标题】:How can I loop through a two-dimensional array and display the values if another value is true?如果另一个值为真,我如何循环遍历二维数组并显示这些值?
【发布时间】:2014-12-16 13:38:39
【问题描述】:

我有一个类似的数组:

0
name => 'john',
age => '99',
isTheOne => boolean true

1
name => 'Jeff',
age => '88',
isTheOne => boolean false

我需要做的是,对于数组中的每一行,仅当字段isTheOne 为true 时才显示其内容。

我认为我需要使用while 循环来执行此操作,但我有点卡住了。我不知道如何继续前进?

【问题讨论】:

  • 向我们展示您的代码。不就是for(..) { if ($array[$i]['isTheOne'] == true) { // print array }}之类的吗?

标签: php arrays loops while-loop


【解决方案1】:

这应该适合你:

<?php

    $array = array(
                0 => array(
                    "name" => 'john',
                    "age" => '99',
                    "isTheOne" => true
                ),

                1 => array(
                    "name" => 'Jeff',
                    "age" => '88',
                    "isTheOne" => false
                )
            );

    foreach($array as $subarray) {
        foreach($subarray as $k => $v) {
            if($k == "isTheOne" && $v == TRUE)
                echo "Key: " . $k . " Value: " . $v;
        }
    }

?>

输出:

Key: isTheOne Value: 1

【讨论】:

    【解决方案2】:

    您可以使用array_map() 代替循环。示例:

    $arr= array(
        array(
            "name" => 'john',
            "age" => '99',
            "isTheOne" => true,
        ),
        array(
            "name" => 'Jeff',
            "age" => '88',
            "isTheOne" => false,
        )
    );
    
    array_map(function($v){
        if(isset($v['isTheOne']) && $v['isTheOne']) echo 'TheOne is true <br />';
    }, $arr);
    

    使用foreach()

    foreach($arr as $val){
        if(isset($val['isTheOne']) && $val['isTheOne'])
            echo 'TheOne is True <br />';
    }
    

    【讨论】:

      猜你喜欢
      • 2011-06-03
      • 2017-05-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-22
      • 1970-01-01
      相关资源
      最近更新 更多