Filtre un tableau en fonction de la valeur d'une colonne

  Information

Voici un bout de code permettant de nettoyer, filtrer un ensemble d'enregistrements en fonction de la valeur d'une colonne.


Information sur les mises à jour

Dernière mise à jour :

    02 Sept 2019
    fonctionnement du code vérifié

4 627  vues
Compatibilité du code
PHP 5, PHP 7 et PHP 8
  code source classé dans   Tableaux - Array

 
 01    
 02    
 03    
 04    
 05    
 06    
 07    
 08    
 09    
 10    
 11    
 12    
 13    
 14    
 15    
 16    
 17    
 18    
 19    
 20    
 21    
 22    
                               
/*------------------------------*/
/*
Titre : Filtre un tableau en fonction de la valeur d'une colonne

Auteur : sheppy1
Date édition : 09 Mars 2019
Date mise a jour : 02 Sept 2019

Rapport de la maj:
- fonctionnement du code vérifié
*/
/*------------------------------*/

function dictionaryFilterList(array $source, array $data, string $column) :
array
{
$new = array_column($data, $column);
$keep = array_diff($new, $source);

return array_intersect_key($data, $keep);
}
?>

Exemple :

 
 01    
 02    
 03    
 04    
 05    
 06    
 07    
 08    
 09    
 10    
 11    
 12    
 13    
 14    
 15    
 16    
 17    
 18    
 19    
 20    
 21    
 22    
 23    
 24    
 25    
 26    
                                            

$users = [
['first_name' => 'Jed', 'last_name' => 'Lopez'],
['first_name' => 'Carlos', 'last_name' => 'Granados'],
['first_name' => 'Dirty', 'last_name' => 'Diana'],
['first_name' => 'John', 'last_name' => 'Williams'],
['first_name' => 'Betty', 'last_name' => 'Boop'],
['first_name' => 'Dan', 'last_name' => 'Daniels'],
['first_name' => 'Britt', 'last_name' => 'Anderson'],
['first_name' => 'Will', 'last_name' => 'Smith'],
['first_name' => 'Magic', 'last_name' => 'Johnson'],
];

var_dump(dictionaryFilterList(['Dirty', 'Dan'], $users, 'first_name'));

// sortie: La fonction ?  "nettoyer" les 2 ?l?ments (Dirty et Dan)
[
['first_name' => 'Jed', 'last_name' => 'Lopez'],
['first_name' => 'Carlos', 'last_name' => 'Granados'],
['first_name' => 'John', 'last_name' => 'Williams'],
['first_name' => 'Betty', 'last_name' => 'Boop'],
['first_name' => 'Britt', 'last_name' => 'Anderson'],
['first_name' => 'Will', 'last_name' => 'Smith'],
['first_name' => 'Magic', 'last_name' => 'Johnson']
]
?>

      Fonctions du code - Doc officielle PHP

Détail    php.net  
Description
Versions PHP
    array
Crée un tableau
PHP 4, 5, 7 et 8
    array_diff
Calcule la différence entre des tableaux
(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)
    array_intersect_key
Calcule l'intersection de deux tableaux en utilisant les clés pour comparaison
(PHP 5 >= 5.1.0, PHP 7, PHP 8)
    return
Retourne le controle du programme au module appelant
PHP 4, 5, 7 et 8
    var_dump
Affiche les informations d'une variable
PHP 4, 5, 7 et 8


 Autres snippets qui pourraient vous intéresser

Remplace récursivement une valeur selon la clé

Compatibilité : PHP 5, PHP 7, PHP 8

Fonction qui remplace une valeur dans un tableau en utilisant soit une clé ou une valeur du tableau. A la même fonction que str_replace () mais pour un tableau.

Recompose un tableau à partir d'une clé et une valeur

Compatibilité : PHP 5, PHP 7, PHP 8

Cette fonction fait le contraire de array_keys et array_values : Elle prend deux tableaux (un de clés, un de valeurs), et en fait 1 tableau.

Renvoie la valeur de la variable ou 1 valeur par défaut

Compatibilité : PHP 5, PHP 7, PHP 8

Cette fonction permet de tester si la variable spécifiée existe. Si elle existe, on renvoie la valeur de la variable.

* Requêtes exécutées avec Recherche Contextuelle

  Les derniers scripts PHP / MySQL

WebCalendar 1.2.7

Script PHP / MySQL
Langue langue fr
Date  hier
Taille 2 Mo
Catégorie Calendriers

Web ERP Accounting 5.0.1

logo Web ERP Accounting
Langue langue us
Date  hier
Taille 69 Mo
Catégorie Logiciels

Dolibarr ERP 23.0.0

logo Dolibarr ERP
Langue langue fr
Date  hier
Taille 88 Mo
Catégorie Logiciels

Simple Machines Forum 2-1-7

logo Simple Machines Forum
Langue langue fr
Date  hier
Taille 4 Mo
Catégorie Forums

Forms Tools 3.1.1

Script PHP / MySQL
Langue langue en
Date  hier
Taille 11 Mo
Catégorie Formulaires

ProcessWire 3.0.255

logo ProcessWire
Langue langue fr
Date  hier
Taille 14 Mo
Catégorie CMS
avatar

Sheppy1

  09 Mars 2019

  SOURCE   Télécharger

Information sur les mises à jour

Dernière mise à jour :

    02 Sept 2019
    fonctionnement du code vérifié

4 627 Vues
Compatibilité du code
PHP 5, PHP 7, PHP 8
34 codes

Catégorie :  Tableaux - Array

Affiche la distance entres 2 villes via un array associatif
Affiche les doublons d'un tableau associatif
Affiche tous les éléments d'un tableau multidimensionnel
Affiche un array sur plusieurs colonnes
Affiche un nombre d'éléments par ligne
Affiche un tableau sur x colonnes
Affiche un tableau unidimensionnel dans une table HTML
Calcule la somme de nombres dans des tableaux multidimensionnels
Cherche en PHP les éléments uniques d'un tableau
Comment dupliquer un tableau
Convertir un tableau PHP en JavaScript
Filtre un tableau en fonction de la valeur d'une colonne
Fonction de base anti spam
Fonction pour lister les tableaux
Fonction récursive pour remplacer une valeur selon la clé
Fusionne 2 tableaux
Insère un élément dans un tableau a une place donnée
Linéarise un tableau associatif
Mélange aléatoirement les éléments d'un tableau
Obtenir les valeurs communes à plusieurs tableaux
Place des éléments à la fin d'un tableau
Place tous les mots d'une chaine dans un tableau
Recompose un tableau à partir d'une clé et une valeur
Retourne les éléments d'un tableau mélangé aléatoirement
Sépare les éléments pair et impair d'un tableau
Supprime les éléments vides d'un tableau
Supprime les doublons d'un tableau
Supprime un élément dans un tableau
Test l'existence de doublons dans un tableau associatif
Test si c'est un tableau d'entiers
Test si un tableau est multidimensionnel
Transforme un tableau en un tableau associatif
Utiliser array_unique sur un tableau de tableaux
Vérifier si un tableau est associatif ou séquentiel