Home » Programmation Web » Langages Web » Comment insérer un élément au milieu d’un tableau PHP ?

Comment insérer un élément au milieu d’un tableau PHP ?

Lors d’une demande de développement PHP, je devais créer une fonction qui répondait à la question suivante :

Comment insérer un élément au milieu d’un tableau ?

Je n’ai pas trouvé de fonction PHP spécifique à cette demande.
Par contre, j’ai découvert une réponse qui me permettrai de créer une fonction de ce genre.
Le code est le suivant :

//Soit le tableau contenant pomme, poire, pêche, kiwi. On veut insérer abricot au milieu de ce tableau
$tab = array ("pomme", "poire", "pêche", "kiwi");
$tab1 = array_slice ($tab, 0, 2); //Récupère pomme et poire
$tab2 = array_slice ($tab, 2); //Récupère tous les éléments à partir de l'indice 2
array_push ($tab1, "abricot"); //Ajoute à la fin du tableau l'élément abricot
$tab = array_merge ($tab1, $tab2); //Fusionne les deux tableaux
echo '<pre>'; print_r($tab); echo '</pre>';

Pour expliquer le code en quelques mots

  • on extrait une (ou plusieurs) portion(s) du tableau avec array_slice().
  • On empile un ou plusieurs éléments à la fin d’un tableau avec array_push()
  • On fusionne un ou plusieurs tableaux avec array_merge().

Cela affiche le tableau suivant :

Array([0] => pomme [1] => poire [2] => abricot [3] => pêche [4] => kiwi)

Voici ce que redonne le même code ci-dessus, mais factoriser dans une fonction.

function add_middle($tab, $add_element, $indice_tab) {
    $tab1 = array_slice ($tab, 0, $indice_tab);
    $tab2 = array_slice ($tab, $indice_tab);
    array_push ($tab1, $add_element);
    $tab = array_merge ($tab1, $tab2); //Fusionne les deux tableaux

    return $tab;
}

//Soit le tableau contenant pomme, poire, pêche, kiwi.
// On veut insérer abricot au milieu de ce tableau
$tab = array ("pomme", "poire", "pêche", "kiwi");
$add_element = 'abricot';

$tab = function add_middle($tab, 'abricot', 2);

echo '<pre>'; print_r($tab); echo '</pre>';

Que pensez-vous de cette technique ? Et connaissez-vous des fonctions natives permettant de faire ce genre de chose ?
N’hésitez pas à venir le partager avec moi.

PS : Quelques heures après la parution de cet article, Frédéric Bouchery me proposait une solution avec une fonction native en PHP. Je peux le remercier.
Voici cette solution :

<?php
$array = ['pomme', 'poire', 'pêche', 'kiwi'];
array_splice($array, 2, 0, ['abricot']);
print_r($array);

Array
(
    [0] => pomme
    [1] => poire
    [2] => abricot
    [3] => pêche
    [4] => kiwi
)
Posté dans Langages Web, Programmation Web

2 commentairess pour “Comment insérer un élément au milieu d’un tableau PHP ?

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.