MarcosR_ 0 Denunciar post Postado Fevereiro 10, 2011 Boa tarde ! Tenho a seguinte array: $a[0][0] = 20155; $a[0][1] = 0; $a[0][2] = 0; $a[1][0] = 20653; $a[1][1] = 1; $a[1][2] = 0; $a[2][0] = 20667; $a[2][1] = 1; $a[2][2] = 0; $a[3][0] = 99999; $a[3][1] = 1; $a[3][2] = 0; Como faria para encontrar o item "20653" dentro dela ? Grato, Marcos Compartilhar este post Link para o post Compartilhar em outros sites
lucasao 5 Denunciar post Postado Fevereiro 10, 2011 <? $a[0][0] = 20155; $a[0][1] = 0; $a[0][2] = 0; $a[1][0] = 20653; $a[1][1] = 1; $a[1][2] = 0; $a[2][0] = 20667; $a[2][1] = 1; $a[2][2] = 0; $a[3][0] = 99999; $a[3][1] = 1; $a[3][2] = 0; function search($array, $needle) { $intLoo = 0; foreach ($array as $new_array) { $key = array_search($needle, $new_array); if ($key !== false) { return array($intLoo, $key); } $intLoo++; } } var_dump(search($a, 20653)); ?> Compartilhar este post Link para o post Compartilhar em outros sites
Vinicius Cruz 1 Denunciar post Postado Fevereiro 11, 2011 Pode usar a função in_array também http://br2.php.net/manual/pt_BR/function.in-array.php Compartilhar este post Link para o post Compartilhar em outros sites
Bruno Augusto 417 Denunciar post Postado Fevereiro 11, 2011 @Vinicius Cruz, in_array(), além de nativa e isoladamente não funcionar de forma recursiva, vai apenas retornar TRUE/FALSE no caso de a string existir ou não. Para isso o Marcos deveria saber exatamente em qual das dimensões a string se encontra, o que parece não ser o caso. A sugestão do Lucas, apesar de simples e funcional não é muito intuitiva, sem contar que não lida com mais de duas dimensões. Porém,no manual, na documentação referente a array_search(), há uma solução mais abrangente, que retorna a pilha completa com toda hierarquia do índice onde se encontra aquilo que precisa. Compartilhar este post Link para o post Compartilhar em outros sites
MarcosR_ 0 Denunciar post Postado Fevereiro 11, 2011 Ok, funcionou ! Mas fazendo mais alguns testes verifiquei que só funciona se eu passar o valor como inteiro, se passar como string retorna null, mesmo que o valor na array seja uma string. Assim: $a[1][0] = "20653"; var_dump(search($a, "20653")); => retorn null Grato, Marcos Compartilhar este post Link para o post Compartilhar em outros sites
Bruno Augusto 417 Denunciar post Postado Fevereiro 11, 2011 Aqui funcionou igualzinho, sendo integer ou numeric string Compartilhar este post Link para o post Compartilhar em outros sites
MarcosR_ 0 Denunciar post Postado Fevereiro 11, 2011 Aqui funcionou igualzinho, sendo integer ou numeric string beleza, já resolvi aqui também. Grato pela ajuda, Marcos Compartilhar este post Link para o post Compartilhar em outros sites