Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Wagner Web

Filtrando Arrays através de Outra

Recommended Posts

Pessoal, boa tarde!

 

Tenho dois Arrays, um chamado $arr_aces (CODIGO_ACESSORIO | DESCRICAO) e o outro o $arr_aces_pesquisa (CODIGO_ACESSORIO).

 

Gostaria de saber como pegar a descrição do $arr_aces através dos códigos contidos no $arr_aces_pesquisa

 

 

Se alguém puder me ajudar ficarei muito grato,

 

 

Grande abraço,

 

 

Wagner Web

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde Mutante e Michel!

 

 

Diz exatamente a estrutura do array...

 

$arr_aces = array(    'CODIGO_ACESSORIO' => '123',    'DESCRICAO' => 'Descrição para o código 123');$arr_aces_pesquisa = array( '123', '321', '234' );
é isso????
Exatamente isso! :)

 

e se for isso, o que você deseja para o resultado???

Desejo que para cada $arr_aces == $arr_aces_pesquisa aparecesse a descrição correspondente a linha.

 

Hoje elaborei este código:

 

 

 

PHP [/tr][tr] #INICIO do "Verifacador de Acessórios"

$VEI_CODS_ACESS=$array['VEI_CODS_ACESS'];

$arr_aces_pesq=explode(',',$VEI_CODS_ACESS); //Códigos dos acessórios pesquisados

$cont_aces_principal=count($arr_aces_prin); //Quantidade de registros existentes

$cont_aces_pesq=count($arr_aces_pesq); //Quantidade de registros da pesquisa

 

reset($arr_aces_prin); // Aponta para o primeiro registo do array

reset($arr_aces_pesq); // Aponta para o primeiro registo do array

 

$iprinc=0; //Zera variável para o laço if que está dentro do while

$i=0; //Zera variável para o laço while

while( $i<$cont_aces_pesq) {

if ($arr_aces_prin[0] != $arr_aces_pesq[0]) { // Se os códigos forem iguais ...

next($arr_aces_prin); // Próximo registro do array principal

$iprinc++;

if ($iprinc=>$cont_aces_principal) { //Evita looping infinito caso os códigos forem diferentes

echo "Erro: Código do array de pesquisa não existe no banco de dados (array principal)" .mysql_error();

exit;

}

}

else {

echo $arr_aces_prin[1]; // Imprime descrição na tela

reset($arr_aces_prin); // Aponta para o primeiro registro do array principal

reset($arr_aces_pesq); // Aponta para o primeiro registro do array de pesquisa

$i++;

$iprinc=0; // Zera variável que verifica looping infinito

}

} // Fim do while

#FIM do "Verifacador de Acessórios"

[/tr]

 

 

Vou testar agora, se der certo volto para confirmar. Se existir um jeito mais fácil ficarei mais feliz ainda. http://forum.imasters.com.br/public/style_emoticons/default/joia.gif http://forum.imasters.com.br/public/style_emoticons/default/hug.gif

 

 

Grande abraço pessoal!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu estou vendo que compliquei demais o código e mesmo assim ele não está dando certo. :(

 

Em outro fórum, meu amigo firemaster, disse que eu poderia usar o foreach.

 

 

Mas como eu posso usar o foreach para comparar duas arrays? Gostaria que acontecesse o seguinte:

 

Estrutura dos Arrays

 

$arr_aces_pesquisa = array(

"0",

"3"

);

 

$arr_aces = array(

"0" => "vidro elético",

"1" => "trava automática",

"2" => "limpador trazeiro",

"3" => "air bag"

);

 

 

Usando o foreach, gostaria de pegar os códigos que tem na array $arr_aces_pesquisa e pesquisá-los no $arr_aces. Quando encontrasse, imprimir a descrição na tela.

 

Ficando assim:

Código 0 = vidro elétrico

Código 3 = air bag

 

 

Pessoal, me desculpe se estou enchendo a paciência de algúem. É que estou há dois dias, praticamente, parado nisso. ;)

 

 

Muito obrigado a atenção de vocês.

 

Grande abraço,

 

 

Wagner Web

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara... é fácil.. faz assim:

  $arr_aces_pesquisa = array("0","3");  $arr_aces = array("0" => "vidro elético", "1" => "trava automática", "2" => "limpador trazeiro","3" => "air bag");  foreach ($arr_aces_pesquisa as $chave => $valor) {    print "Código $valor = ".$arr_aces[$valor]."<br>";  }

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde FabFernandes e pessoal!

 

Realmente o negócio está difícil ;)

 

Olha, estou enviando as partes principais do código para vocês darem uma olhadinha. Creio eu que seja algo simples, mas que minha cabeça não está conseguindo absorver.

 

 

PHP [/tr][tr]// Carrega tabela acessórios em array

$aces_SQL = "SELECT TB_ACES_COD, TB_ACES_DESCR FROM tblacessorios";

 

$query_aces = mysql_query($aces_SQL);

 

 

// este array ($arr_aces) puxará dados da tabela acessórios, que tem dois campos COD_ACESSORIOS | DESCRICAO

$arr_aces = mysql_fetch_array($query_aces);

 

 

// Array com os códigos da pesquisa

$arr_aces_pesquisa = array("0","3");

 

// Comando sugerido pelo colega fabfernandes

foreach ($arr_aces_pesquisa as $chave => $valor) {

print "Código $valor = ".$arr_aces[$valor]."<br>";

}

[/tr]

 

Com este código, na tela aparece a seguinte impressão: Onde o Airbag tem o código 1 na tabela.

 

Código 0 = 1

Código 1 = Airbag

 

Notice: Undefined index: 3 in c:\arquivos de programas\easyphp1-7\www\mogi webcar\teste 3.php on line 52

Código 3 =

 

Por favor, alguma alma caridosa me ajude... :)

Muito obrigado mais uma vez pela atenção http://forum.imasters.com.br/public/style_emoticons/default/excl.gif

 

Wagner Web

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que encontrei o problema. O array principal não estava colhendo as informações corretamente. Então mudei aqui:

 

PHP [/tr][tr]// Carrega tabela acessórios em array

$aces_SQL = "SELECT TB_ACES_COD, TB_ACES_DESCR FROM tblacessorios";

 

$query_aces = mysql_query($aces_SQL);

 

 

// este array ($arr_aces) puxará dados da tabela acessórios, que tem dois campos COD_ACESSORIOS | DESCRICAO

 

// ======== INICIO DO PROBLEMA

//$arr_aces = mysql_fetch_array($query_aces);

//

// ======== CORREÇÃO DO PROBLEMA

while ($arr_aces_query=mysql_fetch_array($query_aces)){;

$arr_aces[]=$arr_aces_query;

};

 

// Array com os códigos da pesquisa

$arr_aces_pesquisa = array("0","3");

 

// Comando sugerido pelo colega fabfernandes

foreach ($arr_aces_pesquisa as $chave => $valor) {

print "Código $valor = ".$arr_aces[$valor]."<br>";

}

[/tr]

 

 

Acho que consegui resolver o problema deste dois dias "perdidos". Digo "" porque aprendemos muitas coisas através dos problemas, ou melhor dizendo, "desafios". :)

 

Obrigado pela ajuda pessoal

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.