2013-07-10 57 views
1

此时,此代码块显示所有五种冰淇淋口味。我试图只显示有库存的口味。显示来自多维阵列的值

<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> 

回答

1

这应该可以做到。

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

在这种情况下'=== true'不是必需的。 – BadHorsie

+0

@BadHorsie:是的,这是正确的。但我想写一点点的代码来帮助初学者理解并不坏:) –

0

您仍然可以使用foreach循环,但使用if声明

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

检查的股票替换

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

if ($flavor['in_stock']) { 
    echo $flavor["name"] . "\n"; 
} 
0
foreach($flavors as $flavor) 
{ 
    if ($flavor['in_stock']) 
    { 
     echo $flavor["name"] . "\n"; 
    } 
} 
0
$flavorsInStock = array_filter($flavors, function($flavor) { 
    return $flavor['in_stock']; 
}); 

会给你一个新的阵列,只有有货的味道。