【问题标题】:Displaying values from a multidimensional array显示多维数组中的值
【发布时间】:2013-07-10 15:29:14
【问题描述】:

现在,这段代码显示了所有五种冰淇淋口味。我试图只显示库存中的口味。

   <pre><?php

   $flavors = array();
   $flavors[] = array("name" => "Cookie Dough",      "in_stock" => true);
   $flavors[] = array("name" => "Vanilla",           "in_stock" => false);
   $flavors[] = array("name" => "Avocado Chocolate", "in_stock" => false);
   $flavors[] = array("name" => "Bacon Me Crazy",    "in_stock" => true);
   $flavors[] = array("name" => "Strawberry",        "in_stock" => false);

   foreach($flavors as $flavor) {


    echo $flavor["name"] . "\n";


  }

  ?></pre>

【问题讨论】:

    标签: php arrays multidimensional-array foreach


    【解决方案1】:

    这应该可以解决问题。

    foreach($flavors as $flavor) {
       if($flavor['in_stock'] === true)
           echo $flavor["name"] . "\n";
    }
    

    【讨论】:

    • 在这种情况下不需要`=== true`。
    • @BadHorsie:是的,没错。但我认为编写更多代码来帮助初学者理解一点也不差:)
    【解决方案2】:

    您仍然可以使用 foreach 循环,但使用 if 语句检查库存

    foreach($flavors as $flavor) {
      if ($flavor["in_stock"])
        echo $flavor["name"] . "\n";
    }
    

    【讨论】:

      【解决方案3】:

      替换

      echo $flavor["name"] . "\n";
      

      if ($flavor['in_stock']) {
        echo $flavor["name"] . "\n";
      }
      

      【讨论】:

        【解决方案4】:
        foreach($flavors as $flavor)
        {
           if ($flavor['in_stock'])
           {
               echo $flavor["name"] . "\n";
           }
        }
        

        【讨论】:

          【解决方案5】:
          $flavorsInStock = array_filter($flavors, function($flavor) {
              return $flavor['in_stock'];
          });
          

          将为您提供仅包含库存口味的新阵列。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2010-11-27
            • 2013-01-06
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多