2017-07-09 14 views
0

Je possède ce tableau, (qui contient toute la définition de « l'amour » BTW):Comment restructurer un tableau en un objet basé sur la valeur de la propriété des éléments du tableau?

[ 
    { 
     def: "a strong positive emotion of regard and affection", 
     exemple: "hildren need a lot of love", 
     class_: "noun" 
    }, 
    { 
     def: "any object of warm affection or devotion", 
     exemple: "the theater was her first love", 
     class_: "noun" 
    }, 
    { 
     def: "sexual activities (often including sexual intercourse) between two people", 
     exemple: "he has a very complicated love life", 
     class_: "noun" 
    }, 


    { 
     def: "have a great affection or liking for", 
     exemple: "She loves her boss and works hard for him", 
     class_: "verb" 
    }, 
    { 
     def: "get pleasure from", 
     exemple: "I love cooking", 
     class_: "verb" 
    }, 
] 

Est-il possible de restructurer le tableau à un objet avec Underscore-PHP ou PHP Array function en regroupant les éléments du tableau sur la base la valeur de < class_> comme ça:

{ 
    noun: [ 
    { 
     def: "a strong positive emotion of regard and affection", 
     exemple: "hildren need a lot of love", 
     class_: "noun" 
    }, 
    { 
     def: "any object of warm affection or devotion", 
     exemple: "the theater was her first love", 
     class_: "noun" 
    }, 
    { 
     def: "sexual activities (often including sexual intercourse) between two people", 
     exemple: "he has a very complicated love life", 
     class_: "noun" 
    }, 
    ], 


    verb: [ 
    { 
     def: "have a great affection or liking for", 
     exemple: "She loves her boss and works hard for him", 
     class_: "verb" 
    }, 
    { 
     def: "get pleasure from", 
     exemple: "I love cooking", 
     class_: "verb" 
    }, 
    ] 
} 

Répondre

1

l'algorithme pour convertir votre chaîne JSON en regroupés on serait comme ceci:

  • Décodez la chaîne json à l'aide de la fonction json_decode() pour obtenir un tableau multidimensionnel.
  • Parcourez la baie pour grouper les éléments du tableau en fonction de vos besoins.
  • Enfin, codez le tableau en utilisant la fonction json_encode() pour obtenir la chaîne json souhaitée.

Donc, votre code devrait ressembler à ceci:
(On suppose $json est votre chaîne JSON originale)

// suppose $json is your original json string 
$array = json_decode($json, true); 

$resultArr = array(); 
foreach($array as $arr){ 
    $resultArr[$arr['class_']][] = $arr; 
} 

// display the resultant json string 
echo json_encode($resultArr); 
+0

Thank you! Je déteste juste écrire fonction d'aide parfois :-) –

+0

@ dev.mnr.j De rien! Heureux d'avoir pu aider. :-) –