2013-07-10 2 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

Вы можете использовать цикл по каждому элементу, но проверить на складе с помощью 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']; 
}); 

Дает вам новый массив с только запахами, которые есть на складе.

Смежные вопросы