PHP array_search retorna consistentemente a primeira chave da matriz [duplicada]
Esta pergunta já tem uma resposta aqui:
PHP in_array () / array_search () comportamento estranho 2 respostasEu notei recentemente problemas ao usar a função array_search no meu código. Estou pesquisando a matriz "$ allcraftatts" pelo valor "sharp". Tentei isolar o problema configurando um experimento de duas linhas:
$testcopy=$allcraftatts;
$testsharp=array_search("sharp", $testcopy);
Usando "print_r (get_defined_vars ());" mais tarde, recebo este resultado:
[testcopy] => Array
(
[0] => 0
[1] => 0
, [2] => 0
[3] => 0
[4] => 0
[5] => 0
[6] => Sharp Stone
[7] => Sharp Stones
[8] => stone
[9] => object
[10] => sharp
[11] => hard
[12] => 0
[13] => 0
[14] => 0
[15] => 0
[16] => 0
[17] => 0
[18] => 0
)
[testsharp] => 0
Certifiquei-me de não modificar essas variáveis em nenhum outro moment
Agora, se eu mudar meu código para
$testcopy=$allcraftatts;
unset($testcopy[0]);
$testsharp=array_search("sharp", $testcopy);
it retorna "1".
Isso me leva a acreditar que sempre retorna a primeira chave na matri
It me confunde! Esse é um daqueles erros que fazem você temer algo errado com o próprio idioma. Por mais duvidoso que isso seja, eu acabei levando a procurar na fonte PHP algo errado lá, mas infelizmente não consegui entende
Vendo que é uma função simples como essa, eu definitivamente ficarei completamente humilhado com a resposta inevitavelmente simples, mas, neste momento, eu só quero uma respost