Pergunta

print_r($tokens);
$tokens = array_unique($tokens);
print_r($tokens);

Fornece a seguinte saída:

Array
(
    [0] => Array
        (
            [Class_ID] => 32709
        )

    [1] => Array
        (
            [Class_ID] => 34682
        )

    [2] => Array
        (
            [Class_ID] => 34818
        )

)
Array
(
    [0] => Array
        (
            [Class_ID] => 32709
        )

)

Eu não quero que isso mude nada com esse Array_unique, já que os valores da classe_id são diferentes .. e aí?

Foi útil?

Solução 2

Encontrei uma função do Php.net que faz Array_unique em matrizes multidimensionais:

function super_unique($array) //array unique for multi 
{
  $result = array_map("unserialize", array_unique(array_map("serialize", $array)));

  foreach ($result as $key => $value)
  {
    if ( is_array($value) )
    {
      $result[$key] = super_unique($value);
    }
  }

  return $result;
}

Outras dicas

A partir de documentação:

Observação: Dois elementos são considerados iguais se e somente se

(string) $elem1 === (string) $elem2

Nas palavras: quando a representação da string é a mesma. O primeiro elemento será usado.

Todos os seus elementos toString são Array.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top