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

1

My array has the structure below, before adding a new position, I would like to check if the "product_id" already exists and if "qtd" is still the same, I tried the community answers but I did not succeed. p>

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
        )

)
    
asked by anonymous 19.10.2017 / 14:59

1 answer

1

Let's say that your main array is stored in the variable $ product_list, the new product you want to check is $ new_id_product and its quantity 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.";
    }
?>
    
19.10.2017 / 15:14