Modifier une ligne de tableau en fonction de l’une de ses valeurs

Written by

Mettre à jour la première occurrence d’un sous-tableau contenant le terme de recherche spécifié.

<?php 
/**
 * Cette fonction parcourt récursivement un tableau multidimensionnel et met à jour
 * la première occurrence d'un sous-tableau contenant le terme de recherche spécifié.
 *
 * @param array $array     Le tableau à parcourir
 * @param string $newValue La nouvelle valeur pour l'index 0 du sous-tableau
 * @param string $newUrl   La nouvelle valeur pour l'index 1 du sous-tableau
 * @param string $searchTerm Le terme à rechercher dans le tableau
 *
 * @return array           Le tableau mis à jour
 */
function ng1UpdateArrayValue($array, $searchTerm, $newValue, $newUrl,$index =0) {
    foreach ($array as $key => $subarray) {
        // Vérifie si le sous-tableau actuel contient le terme de recherche spécifié
        if ($subarray[$index] === $searchTerm) {
            // Si c'est le cas, met à jour les valeurs pour l'index 0 et l'index 1
            $array[$key][0] = $newValue;
            $array[$key][1] = $newUrl;
            // Sort de la boucle pour éviter de mettre à jour plusieurs occurrences
            break;
        } elseif (is_array($subarray)) {
            // Si le sous-tableau actuel n'est pas une feuille, appelle la fonction récursivement
            $array[$key] = ng1UpdateArrayValue($subarray, $newValue, $newUrl, $searchTerm,$index);
        }
    }
    // Retourne le tableau mis à jour
    return $array;
}