Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Possuo um array e estou tentando checar se existe um determinado valor nesse array mais não estou conseguindo.
segue meu código:
$produtos_vendidos = [];
$produtos_vendidos[] = ["cod_produto" => 4545, "qtd_vendida" => 3];
$produtos_vendidos[] = ["cod_produto" => 4646, "qtd_vendida" => 2];
$produtos_vendidos[] = ["cod_produto" => 5656, "qtd_vendida" => 1];
$produtos_vendidos[] = ["cod_produto" => 4646, "qtd_vendida" => 1];
$produtos_vendidos[] = ["cod_produto" => 6565, "qtd_vendida" => 5];
$produtos_vendidos[] = ["cod_produto" => 4646, "qtd_vendida" => 4];
echo '<hr>';
//Checa se existe o código 4545
var_dump(in_array(4545, $produtos_vendidos));Gabriel tetei com o código abaixo e não deu certo. A versão do meu PHP é 5.5.9
$key = array_search('4545' , array_column($produtos_vendidos , 'cod_produto'));
var_dump($key);
Ele retorna int(0)Está correto, a primeira posição é 0. Caso ele não encontrar irá retornar false.
Entendi.
Obrigado pela ajuda
O in_array é strict search, ou seja, apena compara se os valores são iguais.
Você, por outro lado, quer verificar se um array possui o código passado.
Nesse caso, vai depender um pouco da versão do seu PHP.
Se o seu PHP for >= 5.5.0, pode usar da seguinte forma:
$key = array_search('valor' , array_column($array , 'column_name'));
Caso for menor, terá de criar sua própria função de busca.