How do I check if a value already exists in my array?

Asked

Viewed 66 times

1

My array has the structure below, before adding a new position, I would like to check if there is already "id_product" and if "Qtd" is still the same, I tried with the community answers but was not successful.

Array
(
    [0] => Array
        (
            [url_amigavel] => alianca-anatomica-de-ouro-18k-750-com-6-brilhantes-de-100-pontos-largura-600mm-altura-150mm
            [ref] => C569R
            [hash] => aliancas##ouro
            [qtd] => 1
            [preco_original] => 2718.14
            [preco_desconto] => 2.582.23
            [desconto_porcentagem] => 5
            [id_produto] => 2061
            [categoria] => aliancas
            [subcategoria] => ouro
            [produto] => Aliança Anatômica de Ouro 18k 750 com 6 Brilhantes de 1.00 Pontos Largura 6.00mm Altura 1.50mm
            [imagem] => xml/acessorios/cpl_C569R_1.jpg
        )

    [1] => Array
        (
            [url_amigavel] => alianca-anatomica-de-ouro-18k-750-com-6-brilhantes-de-100-pontos-largura-600mm-altura-150mm
            [ref] => C569R
            [hash] => aliancas##ouro
            [qtd] => 1
            [preco_original] => 2718.14
            [preco_desconto] => 2.582.23
            [desconto_porcentagem] => 5
            [id_produto] => 2061
            [categoria] => aliancas
            [subcategoria] => ouro
            [produto] => Aliança Anatômica de Ouro 18k 750 com 6 Brilhantes de 1.00 Pontos Largura 6.00mm Altura 1.50mm
            [imagem] => xml/acessorios/cpl_C569R_1.jpg
        )

    [2] => Array
        (
            [url_amigavel] => alianca-anatomica-de-ouro-vermelho-18k-750-com-1-brilhante-de-350-pontos-largura-350mm-altura-150mm
            [ref] => C34 RV
            [hash] => aliancas##ouro
            [qtd] => 1
            [preco_original] => 1241.08
            [preco_desconto] => 1.179.03
            [desconto_porcentagem] => 5
            [id_produto] => 836
            [categoria] => aliancas
            [subcategoria] => ouro
            [produto] => Aliança Anatômica de Ouro Vermelho 18k 750 com 1 Brilhante de 3.50 Pontos Largura 3.50mm Altura 1.50
            [imagem] => xml/acessorios/cpl_34RV.jpg
        )

    [3] => Array
        (
            [url_amigavel] => alianca-anatomica-de-ouro-18k-750-com-6-brilhantes-de-100-pontos-largura-600mm-altura-150mm
            [ref] => C569R
            [hash] => aliancas##ouro
            [qtd] => 1
            [preco_original] => 2718.14
            [preco_desconto] => 2.582.23
            [desconto_porcentagem] => 5
            [id_produto] => 2061
            [categoria] => aliancas
            [subcategoria] => ouro
            [produto] => Aliança Anatômica de Ouro 18k 750 com 6 Brilhantes de 1.00 Pontos Largura 6.00mm Altura 1.50mm
            [imagem] => xml/acessorios/cpl_C569R_1.jpg
        )

)

1 answer

1


Let’s say that your main array is stored in the $list_products variable, the new product you want to check is $new_id_product and the quantity of it is $new_product_qtd, the code to check this would be:

<?php 
    // Variável para identificar se o produto já existe
    $existe = false;
    $quantidade_igual = false;

    foreach ($lista_produtos as $produto){
        if($produto['id_produto'] == $novo_id_produto){
            $existe = true;
            if($produto['qtd'] == $novo_produto_qtd){
                $quantidade_igual = true;
            }
        }
    }

    if($existe == true){
        echo "Este produto já existe na lista";
    }

    if($quantidade_igual == true){
        echo "E ele tem a mesma quantidade que na lista";
    }else{
        echo "Mas a quantidade está diferente.";
    }
?>
  • It worked significantly, thanks for that, hug!

  • Glad you could help. No reason :)

Browser other questions tagged

You are not signed in. Login or sign up in order to post.