PHP 5.5 introduit une nouvelle fonction fort utile : array_column, pour récupérer par sa clé une sous-colonne d’un tableau associatif en php.
Malheureusement, ce n’est pas la version de PHP la plus répandue à l’heure actuelle. Ce plugin résout le problème de la compatibilité en ajoutant cette fonction à SPIP si le serveur n’est pas en PHP 5.5.
Il est basé sur le travail de Ben Ramsey.
Utilisation dans SPIP
Array_column s’avère très pratique pour simplifier des tableaux. Par exemple, un retour de la fonction sql_allfetsel.
Imaginons le code suivant :
$mail = sql_allfetsel('email', 'spip_auteurs', sql_in('id_auteur', $destinataire));
$mail contiendra alors un tableau formaté comme suis :
$mail = array(
array('email' => 'email@email.com'),
array('email' => 'email2@email2.com'),
array('email' => 'email3@email3.com'),
[...]
);
Alors que l’on voudrait simplement gérer un gros tableau de mail, il suffit de passer dans array_column :
$mail = array_column($mail, 'email');
Et notre beau tableau devient :
$mail = array(
'email@email.com',
'email2@email2.com',
'email3@email3.com',
[...]
);
Une autre utilisation bien utile, récupérer un tableau id_objet => Titre_objet :
$liste_articles = sql_allfetsel('id_article, titre', 'spip_articles');
$liste_articles = array_column($liste_articles, 'titre', 'id_article');
Dans ce cas si, le troisième paramètre sera utilisé comme index et donnera le tableau suivant :
$liste_articles = array(
1 => 'titre article 1',
2 => 'titre article 2',
3 => 'titre articles 3',
[...]
);
Aucune discussion
Ajouter un commentaire
Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :
Merci d’avance pour les personnes qui vous aideront !
Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.
Suivre les commentaires : |