Vous pouvez créer un nouveau tableau avec les AOP résultats ...
$newArray = array();
foreach ($pdoArray AS $result) {
if (isset($newArray[$result['id']])) {
continue; }
$newArray[$result['id']] = $result['test'];
}
Qu'est-ce que cela ne s'ajoute des choses à un nouveau tableau, avec l'identifiant bing clé du nouveau tableau. S'il trouve un tableau avec la même clé, il le saute simplement.
C'est une réponse simple, vous auriez probablement envie des contrôles pour vous assurer que vous obtenez la bonne valeur (qui des deux ID vous voulez garder?)
Sinon, si vous ne voulez pas garder l'un d'entre eux, construire le tableau, mais en plus de faire un continue;
vous pouvez ajouter l'ID à un nouveau tableau (un tableau de suppression). Puis, une fois la première boucle se fait, boucle à travers le tableau de suppression et supprimez les clés:
$newArray = array();
$delete = array();
foreach ($pdoArray AS $result) {
if (isset($newArray[$result['id']])) {
$delete[] = $result['id'];
continue; }
$newArray[$result['id']] = $result['test'];
}
foreach ($delete AS $del) {
unset($newArray[$del]); }
OU vous pouvez ajouter l'ID à la clé des réseaux de suppression (plutôt que la valeur), puis faire une array_diff_key(). Mais, il me semble que vous avez besoin de repenser la structure de votre base de données ... pourquoi avez-vous des ID en double?
Ma première pensée est de marcher sur chaque élément de ce tableau et d'avoir un second tableau qui contiendrait les identifiants "visités". Si vous rencontrez un identifiant, qui est déjà visité, vous le supprimez(). – koressak
@JavascriptGOLD, pourquoi avez-vous des doublons dans votre base de données ?? si c'est un ** 'id' **, il ne devrait pas être autorisé à être dupliqué ... – Neal
Ça vient d'un INNER JOIN, mec. Ce ne sont pas des ID en double, chaque enregistrement est différent, mais les mêmes ID apparaissent à partir de chaque enregistrement. Comme une liste de commentaires et d'utilisateurs. – JavascriptGOD