OmegaX 0 Denunciar post Postado Abril 3, 2010 Neste exemplo: $a=array("a","b",0,"c","d"); echo "a: ".array_search("a",$a)."<br>"; echo "b: ".array_search("b",$a)."<br>"; echo "c: ".array_search("c",$a)."<br>"; echo "d: ".array_search("d",$a)."<br>"; echo "0: ".array_search("0",$a)."<br>"; echo "x: ".array_search("x",$a)."<br>"; echo "1: ".array_search("1",$a)."<br>"; print_r($a); Resultado: a: 0 b: 1 c: 2 d: 2 0: 2 x: 2 1: Array ( [0] => a [1] => b [2] => 0 [3] => c [4] => d ) A função array_search() procura um valor no array e retorna o índice se ele existir, certo? Mas, por que se eu coloco o 0 ali no array o resto dos valores(c,d,0, e até o x, que não tem la) são exibidos com índice 2? Compartilhar este post Link para o post Compartilhar em outros sites
André D. Molin 15 Denunciar post Postado Abril 3, 2010 Creio que seja o casting do PHP (que tem uma tipagem não muito boa) que esteja fazendo confusão. Tenta colocar esse 0 (zero) como string e posta aqui o resultado. $a=array("a","b","0","c","d"); Compartilhar este post Link para o post Compartilhar em outros sites
OmegaX 0 Denunciar post Postado Abril 4, 2010 Ai funciona Resultado: a: 0 b: 1 c: 3 d: 4 0: 2 x: 1: Array ( [0] => a [1] => b [2] => 0 [3] => c [4] => d ) Mas não entendi o que você falou, o que é casting e tipagem? Compartilhar este post Link para o post Compartilhar em outros sites
André D. Molin 15 Denunciar post Postado Abril 4, 2010 Dá uma lida aqui: http://www.php.net/manual/pt_BR/language.types.type-juggling.php Compartilhar este post Link para o post Compartilhar em outros sites
Jaime_Pinheiro 0 Denunciar post Postado Abril 5, 2010 Leia documentação da função: http://php.net/manual/en/function.array-search.php array_search aceita um terceiro parâmetro booleano $strict. Tente desta forma: $a=array("a","b",0,"c","d"); echo "0: ".array_search("0",$a,true)."<br>"; echo "0: ".array_search("0",$a,false)."<br>"; Abraço! Compartilhar este post Link para o post Compartilhar em outros sites
OmegaX 0 Denunciar post Postado Abril 5, 2010 Entendi, vlw pelas dicas pessoal. Tentei como você disse Jaime mas continua do mesmo jeito, acho que é como o André falou, deve ser o casting, na hora que o php faz a conversão. Será que essa função aceita parâmetros do tipo inteiro? Porque pelos exemplos que eu vi nesses sites só tem strings no array. Compartilhar este post Link para o post Compartilhar em outros sites