Ir para conteúdo

POWERED BY:

Arquivado

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

MarcosR_

[Resolvido] Encontrar string em Array

Recommended Posts

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
<?
$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, 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

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

×

Informação importante

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