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

Langage PHP Discussion :

Avoir les résultat inverse de array_diff_assoc [PHP 5.3]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de pony99
    Femme Profil pro
    Inscrit en
    Mars 2004
    Messages
    161
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Mars 2004
    Messages : 161
    Par défaut Avoir les résultat inverse de array_diff_assoc
    Bonjour,

    J'ai beau cherché, mais je ne trouve pas de solution

    Voici mon code simplifié

    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
              // en plus simple
     
              $b = array('3'=>'Mamie','4'=>'Papi');
              echo "Table personnages restants (B) --> "; print_r ($b);echo "<br>";
     
              $c = array('0'=>'35 ans', '1'=> '31 ans', '2'=>'8 ans', '3'=>'56','4'=>'59');
              echo "Table ages des personnages (C)--> "; print_r ($c);echo "<br>";
     
              // les différence des deux tableau
              $age_mamie_papi = array_diff_assoc($b, $c);
              $age_mamie_papi_2 = array_diff_assoc($c,$b);
     
              echo "Table Age de Mami & Papi (B vs. C)--> "; print_r ($age_mamie_papi);
              echo "<br>";
              echo "Table Age de Mami & Papi (C vs. B)--> "; print_r ($age_mamie_papi_2);
    Resultat
    Table personnages restants (B)) --> Array ( [3] => Mamie [4] => Papi )
    Table ages des personnages (C)--> Array ( [0] => 35 ans [1] => 31 ans [2] => 8 ans [3] => 56 [4] => 59 )
    Table Age de Mami & Papi (B vs. C)--> Array ( [3] => Mamie [4] => Papi )
    Table Age de Mami & Papi (C vs. B)--> Array ( [0] => 35 ans [1] => 31 ans [2] => 8 ans [3] => 56 [4] => 59 )
    Moi je voudrai avoir comme table l'age et non les personnage : Array ( [3] => 56 [4] =>59 )

    connaissez vous un fonction permettant de faire cela ?

    Merci de votre aides

  2. #2
    Membre éclairé Avatar de Katachana
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2007
    Messages : 755
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $array1 = array('bleu'  => 1, 'rouge'  => 2, 'vert'  => 3, 'violet' => 4);
    $array2 = array('vert' => 5, 'bleu' => 6, 'jaune' => 7, 'cyan'   => 8);
     
    array_intersect_ukey($array1, $array2, 'key_compare_func');

    Renvoie cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    'bleu'  => 1
    'vert'  => 3

    Se sont les valeurs de $array1 qui sont retournées


    Tu as aussi la fonction array_intersect_key():

    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
     
    <?php
    function key_compare_func($key1, $key2)
    {
        if ($key1 == $key2)
            return 0;
        else if ($key1 > $key2)
            return 1;
        else
            return -1;
    }
     
    $array1 = array('bleu'  => 1, 'rouge'  => 2, 'vert'  => 3, 'violet' => 4);
    $array2 = array('vert' => 5, 'bleu' => 6, 'jaune' => 7, 'cyan'   => 8);
     
    var_dump(array_intersect_ukey($array1, $array2, 'key_compare_func'));
    ?>

    Bonne chance !

  3. #3
    Membre confirmé Avatar de pony99
    Femme Profil pro
    Inscrit en
    Mars 2004
    Messages
    161
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Mars 2004
    Messages : 161
    Par défaut
    J'ai testé array_intersect_key(); cela me retourne :

    Warning: array_intersect_ukey() expects parameter 3 to be a valid callback, function 'key_compare_func' not found or invalid function name in C:\wamp\www\test\index.php on line 22
    c'est pareil avec array_intersect_ukey();

    Editer
    C'est Ok pour ton exemple, j'ai oublié de mettre le fonction key_compare_func qui se trouve dans le code que tu m'as donné

    Merci

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 25/08/2013, 09h27
  2. Réponses: 2
    Dernier message: 17/07/2008, 20h04
  3. avoir les mêmes résultats entre 2 requetes consécutives
    Par contremaitre dans le forum Langage SQL
    Réponses: 2
    Dernier message: 09/07/2008, 17h56
  4. [CruiseControl] Comment avoir les résultats de test non-unitaires ?
    Par SimonTab dans le forum Intégration Continue
    Réponses: 0
    Dernier message: 26/06/2008, 10h30
  5. [MySQL] Avoir les 50 premiers résultat par rapport à une recherche
    Par polemoss dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 30/11/2007, 11h42

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