IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Meilleure façon de modifier une valeur d'un tableau php


Sujet :

PHP & Base de données

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 81
    Par défaut Meilleure façon de modifier une valeur d'un tableau php
    Bonjour,

    Voilà j'ai un tableau comme celui ci-dessous, compilé depuis un formulaire en JSON et récupéré dans mon script PHP via json_decode() :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    Array
    (
        [0] => Array
            (
                [name] => date
                [value] => Lundi 5 avril
            )
     
        [1] => Array
            (
                [name] => adresses_svg
                [value] => new
            )
     
        [2] => Array
            (
                [name] => commune
                [value] => Arradon
            )
    ...
    Je dois vérifier la valeur [value] associée à la clé [name] "adresses_svg".
    Mais cette sous branche du tableau est associée à une clé dont le chiffre change du fait que mon formulaire est dynamique.

    Voilà comment je procède actuellement :
    1 - Je décompose donc ce tableau dans une boucle foreach
    2 - Je check si la clé name est dans la boucle et je récupère la valeur dans une variable.
    Eventuellement je retire l'entrée complète avant insertion dans ma table sql :
    3 - Je récupère la position dans la boucle via une incrémentation $i++
    4 - J'applique un unset au tableau après la fin de la boucle.

    Existe t'il une méthode plus rapide pour modifier / retirer une valeur / une branche dans un tableau ? Un peu comme CRISPR-Cas9 en génétique !
    Genre en utilisant et ?

    Un grand merci à vous !

  2. #2
    Membre chevronné Avatar de ddaweb
    Homme Profil pro
    Webmaster amateur
    Inscrit en
    Janvier 2013
    Messages
    329
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webmaster amateur
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Janvier 2013
    Messages : 329
    Par défaut
    Citation Envoyé par Lexarino Voir le message
    Existe t'il une méthode plus rapide pour modifier / retirer une valeur / une branche dans un tableau ?!
    Oui, mais si j'ai bien compris, les chiffres ne sont pas vraiment connu par vous, ce qui va compliquer la chose

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    unset($array[1]); // ----- va effacer la branche [1]
    unset ($array[0]['name']); // ----- va effacer le ['name'] de la branche [0]
    $array[2]['name']='toto'; // ----- va modifier la valeur
    NB : si vous passer en PHP 8, les string entre crochets doivent être entourés d'apostrophe (comme dans mon exemple) -> c'est devenu bloquant, j'en ai fait les frais

  3. #3
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 496
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $t=[......];//le tableau initial
    /* avec array_search */
    $indexElement=array_search("adresses_svg",array_map(function($elem){return $elem["name"];},$t));
    if($indexElement!==false)
    	echo "L'index de l'élément ayant le name=adresses_svg est :".$indexElement."\n\r";
     
    //avec array filter
    $element=array_filter($t,function($item){return $item["name"]=="adresses_svg";});
    foreach($element as $i=>$v){
    	echo "Element ayant le name=".$v["name"]." Trouvé dans l'index :".$i."\n\r";
    }
    La différence entre les deux fonction c'est que la première (array_search) retourne seulement l'index de la première occurrence rencontrée, alors que array_filter retourne toutes les occurrences avec leurs indexes.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. modifier une valeur dans un tableau
    Par kanwulf62 dans le forum MATLAB
    Réponses: 1
    Dernier message: 24/05/2013, 09h31
  2. Modifier une valeur d'un tableau
    Par slifferstorm dans le forum C
    Réponses: 9
    Dernier message: 02/01/2010, 13h44
  3. pouvoir modifier une valeur dans un tableau
    Par adri_99 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 20/10/2007, 19h32
  4. Réponses: 7
    Dernier message: 24/02/2006, 16h31
  5. [C#] Modifier une valeur dans une DataTable
    Par Scorff dans le forum ASP.NET
    Réponses: 2
    Dernier message: 23/05/2005, 10h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo