Ir para conteúdo

POWERED BY:

Arquivado

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

BRG

Buscar elementos repetidos em array

Recommended Posts

Bom dia galera!

Estou com um problema e espero que alguém saiba como posso resolvê-lo!

 

eu tenho um array:

$array = array(1,2,3,4,2,3,2);

 

também tenho uma função que me retorna os numeros que se repetem em um array, gerando:

$repetidos = array(2,3);

 

Eu preciso saber em quais indices, os valores do array $repetidos aparece no array $array, retornando neste caso:

 

Para o valor 2:

Indice 1, Indice 4 e Indice 6

 

Para o valor 3:

Indice 2 e Indice 5

 

obs.: tentei usar a função array_search, porém ela só me retorna 1 indice e não todos como eu gostaria.

 

Se alguem puder me ajudar, ficarei muito agradecido!

 

Abs!

Compartilhar este post


Link para o post
Compartilhar em outros sites

<?php
echo '<pre>';
	$Array = Array( 1 , 1 , 1 , 5 , 6 , 6 , 7 , 8 , 9 , 9 , 10 ) ;
	forEach( array_keys( array_filter( array_count_values( $Array ) , function( $value ) {
		       return ( $value > 1 ) ;
	} ) ) as $Filtered ) { 
	      $Positions[ ] = array_search( $Filtered , $Array ) ;
	}

	print_r( $Positions ) ;

 

Saída:

Array
(
   [0] => 0
   [1] => 4
   [2] => 8
)

 

Mas tem um problema, isso te retorna as chaves .. mas te retorna somente a chave do primeiro elemento repetido .. se você quiser de todos ..

<?php
echo '<pre>';
	$Array = Array( 1 , 1 , 1 , 5 , 6 , 6 , 7 , 8 , 9 , 9 , 10 ) ;
	print_r( array_diff( $Array , array_diff( $Array , array_diff_key( $Array , array_unique( $Array ) ) ) ) );

 

Saída:

Array
(
   [0] => 1
   [1] => 1
   [2] => 1
   [4] => 6
   [5] => 6
   [8] => 9
   [9] => 9
)

Compartilhar este post


Link para o post
Compartilhar em outros sites

E no caso de um array assim:

 

Array

(

[0] => Array

(

[0] => 89

[1] => 93

[2] => 90

)

 

[1] => Array

(

[0] => 89

[1] => 93

[2] => 90

[3] => 91

)

 

[2] => Array

(

[0] => 89

[1] => 90

)

 

)

 

preciso que me retorne apenas o 89 e 90.... preciso apenas dos itens q se repetem em todas as chaves.

 

preciso de uma resposta assim...

[0] => Array

(

[0] => 89

[1] => 90

)

 

 

ja tentei usar o array_diff_assoc e array_unique juntos, mas essas funções me retornam se o valor se repete mais de uma vez, mas eu preciso saber, se o valor se repetiu em TODAS as chaves do array.

 

Alguém tem uma LUZ ?

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.