Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
estou com um array que retorna isso com a função print_r
Array
(
[0] => Array
(
[id] => 1
[nome] => Nome1
[sobrenome] => Sobrenome1
[=> Email1](mailto:)
[[login] => login1](mailto:)
[[senha] => senha1](mailto:)
[[profile_image] => 1.jpg](mailto:)
[[1] => Array](mailto:)
(
[[id] => 3](mailto:)
[[nome] => nome3](mailto:)
[[sobrenome] => sobrenome3](mailto:)
[=> email3](mailto:)
[[login] => login3](mailto:)
[[senha] => senha3](mailto:)
[[profile_image] => 3.jpg](mailto:)[[2] => Array](mailto:)
(
[[id] => 1](mailto:)
[[nome] => Nome1](mailto:)
[[sobrenome] => Sobrenome1](mailto:)
[=> Email1](mailto:)
[[login] => login1](mailto:)
[[senha] => senha1](mailto:)
[[profile_image] => 1.jpg](mailto:)
)
Seguindo a sugestão do Bruno, usando array_filter:
(testado no PHP 5.4)
<?php
// Array exemplo
$array = [
[
'id' => 1,
'nome' => "Nome1",
'sobrenome' => "Sobrenome1",
'email' => "Email1",
'login' => "login1",
'senha' => "senha1",
'profile_image' => "1.jpg"
], [
'id' => 3,
'nome' => "nome3",
'sobrenome' => "sobrenome3",
'email' => "email3",
'login' => "login3",
'senha' => "senha3",
'profile_image' => "3.jpg"
], [
'id' => 1,
'nome' => "Nome1",
'sobrenome' => "Sobrenome1",
'email' => "Email1",
'login' => "login1",
'senha' => "senha1",
'profile_image' => "1.jpg"
], [
'id' => 4,
'nome' => "Nome1",
'sobrenome' => "Sobrenome1",
'email' => "Email1",
'login' => "login1",
'senha' => "senha1",
'profile_image' => "1.jpg"
]
];
// Array que armazenará os 'id' que já "sairam"
$ids = [];
$res = array_filter($array, function ($arr) use (&$ids) {
if (!in_array($arr['id'], $ids)) {
return TRUE;
}
});
var_dump($res);
Veja se funciona para você...
Em caso eu testo, mas porque você retornou o array ao invés de TRUE/FALSE?
Ops... corrige aí pra mim que a opção pra editar não está aparecendo aqui. Coloca pra retornar true.
Como isso está me parecendo algo que veio de um banco de dados, você deveria fazer essa filtragem na própria query, com um DISTINCT.
Mas se quiser mesmo fazer com PHP, pode usar array_filter() que, apesar de não servir para o propósito de remover duplicatas, é possível modificar o comportamento graças à função de callback que ela aceita, ao passo que array_unique() não.