Groupe tableau par subarray valeurs
Ici est un défi intéressant. J'ai un tableau de sous-réseaux dans le format suivant:
array
(
a => array ( id = 20, name = chimpanzee )
b => array ( id = 40, name = meeting )
c => array ( id = 20, name = dynasty )
d => array ( id = 50, name = chocolate )
e => array ( id = 10, name = bananas )
f => array ( id = 50, name = fantasy )
g => array ( id = 50, name = football )
)
Et je tiens à le groupe dans un nouveau tableau en fonction de l'id de champ dans chaque subarray.
array
(
10 => array
(
e => array ( id = 10, name = bananas )
)
20 => array
(
a => array ( id = 20, name = chimpanzee )
c => array ( id = 20, name = dynasty )
)
40 => array
(
b => array ( id = 40, name = meeting )
)
50 => array
(
d => array ( id = 50, name = chocolate )
f => array ( id = 50, name = fantasy )
g => array ( id = 50, name = football )
)
)
Merci!
Vous devez vous connecter pour publier un commentaire.
$old_arr
. Maintenant que je l'examiner de plus près, à l'aide dearray_key_exists
n'ajoute rien à ce code. Le résultat est exactement le même sans elle. En termes de performances: il appelle une fonction sur un tableau à l'intérieur d'une boucle qui a de l'emporter sur les performances que vous souhaitez prendre de l'écriture à l'inexistante de la clé, alors je vous suggère de déposer l'ensemble de laif()
bloc.morceau de gâteau 😉
Le code suivant s'adapte @Tim Cooper code pour atténuer
Undefined index: id
erreurs dans le cas où l'un des intérieurs les tableaux ne contiennent pas une id:Cependant, il va tomber intérieur des tableaux sans un id.
E. g.
vais laisser tomber le 'h' array complètement.
démo: http://codepad.org/yvU95m9k
Vous pouvez également utiliser Les tableaux::gorupBy forme ouzo-goodies:
Et résultat:
Et voici les docs pour Les tableaux et Fonctions.