Искать что-то в списке, и сказать, есть ли или нет - Представить Значение, и сумма количества


добрый день, что это самый простой способ сделать список, который содержит несколько элементов, например мясо, рыба, пао etc, и из váriavel $_GET знать, если продукт существует или нет ? я попытался создать массив и сделать с array_key_exist но мне не удается. спасибо

 2
Author: Mario Caeiro, 2016-07-08

2 answers

И так Сделайте так:

$produtos = array(
    'Leite' => array(
        'preco' => 1.5,
    ),
    'Chocolate' => array(
        'preco' => 10,
    ),
    'Pão' => array(
        'preco' => 3.5,
    ),
    'Sal' => array(
        'preco' => 0.5,
    ),
);
// EX: aceda a www.seusite.com?produto=Leite&quantidade=5 e depois:
if(isset($_GET['produto'])) {
    echo 'Preço por unidade: ' .$produtos[$_GET['produto']]['preco']. '<br>';
    if(isset($_GET['quantidade'])) {
        echo 'Preço total: ' .$produtos[$_GET['produto']]['preco']*$_GET['quantidade'];
    }
    else {
        echo 'Preço total: ' .$produtos[$_GET['produto']]['preco'];
    }
}
else {
    echo 'Produto indefinido';
}
 1
Author: Miguel, 2016-07-08 17:43:57

, Если хотите сделать в переменной $_GET, можно добавить несколько элементов в одном, индекс параметра GET.

См.:

url?itens[]=pão&itens[]=leite&itens[]=ovo

В PHP это не вернет:

 print_r($_GET['itens']); // ["pão", "leite", "ovo"]

Для url стоять так, espeficada в комментарии, вы должны объявить форму так:

 <input type="text" name="itens[]" value="ovo" />
 <input type="text" name="itens[]" value="pão" />

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

 $valores = $_GET['itens'];

 ksort($valores);

 $obrigatorios = ['leite', 'ovo', 'pão']

 var_dump($valores === $obrigatorios);

Другой способ сделать проверки с помощью функции array_intersect:

count(array_intersect($obrigatorios, $valores)) > 0
 1
Author: Wallace Maxters, 2016-07-08 17:09:58