N dans cette question signifie n'importe quel nombre arbitraire de n'importe quelle taille et n'est pas nécessairement (mais pourrait être) le même. J'ai un tableau avec N nombre de paires clé => valeur. Ces paires clé => valeur peuvent également contenir un autre tableau de taille N avec N nombre de paires clé => valeur. Ce tableau peut avoir une profondeur de N, ce qui signifie que toute paire clé => valeur du tableau pourrait correspondre à un autre tableau. Comment puis-je obtenir toutes les valeurs de ce tableau (les stocker dans un nouveau tableau)? la clé => paires de valeurs?Traverser toutes les valeurs d'un tableau de tableaux
Répondre
voler à Yurkowski dot net 26-Oct-2010 06:16
Si vous avez vraiment pas particulièrement soins sur les clés d'un tableau, vous pouvez capturer toutes les valeurs tout simplement:
$sample = array(
'dog' => 'woof',
'cat' => array(
'angry' => 'hiss',
'happy' => 'purr'
),
'aardvark' => 'kssksskss'
);
$output = array();
// Push all $val onto $output.
array_walk_recursive($sample, create_function('$val, $key, $obj', 'array_push($obj, $val);'), &$output);
// Printing echo nl2br(print_r($output, true));
/*
* Array
* (
* [0] => woof
* [1] => hiss
* [2] => purr
* [3] => kssksskss
*)
*/
Vous pouvez faire smt comme ceci:
$output = array();
function genArray($arr) {
global $output;
foreach($arr as $key => $val) {
if(is_array($val))
genArray($val);
else
output[$key] = $val;
}
}
genArray($myArray);
lieu de récursivité, en utilisant la variable globale et la fonction, il pourrait se faire via des boucles, mais cela est juste une idée générale, et a probablement besoin d'un peu de votre attention, de toute façon . Cela devrait être une bonne chose :)
Avec une ancienne version de PHP, c'est la meilleure solution. Je voudrais supprimer la variable globale et juste le renvoyer dans la fonction si. – bmarti44
@ bmarti44: retourne un tableau? ou un élément de tableau? – hummingBird
Ah, je vois que vous ne pouvez pas le retourner dans ce cas. Cela reviendrait à un élément de tableau, vous avez raison. – bmarti44
Il y a une tonne de solutions dans les commentaires de array_values php doc.
- 1. Recherche de toutes les combinaisons de valeurs de tableau JavaScript
- 2. Transformer les valeurs des tableaux de chaînes en objet tableau
- 3. Application d'une fonction à toutes les valeurs d'un tableau
- 4. Vérification de toutes les valeurs de tableau à la fois
- 5. Tirer toutes les valeurs de forme d'un tableau posté
- 6. Ajouter des valeurs de tableaux à un tableau?
- 7. Les valeurs du nombre de tableaux
- 8. Comment obtenir toutes les valeurs possibles d'une fonction appelée avec deux valeurs d'un tableau?
- 9. toutes les possibilités tableau 2d
- 10. Créer un tableau de tous les éléments dans les sous-tableaux d'un tableau de tableaux?
- 11. Obtenir toutes les valeurs de NSDictionary (profondément)
- 12. Toutes les possibilités de tableau
- 13. Obtenir toutes les valeurs d'énumération
- 14. tableaux en php, Comparez les 2 tableaux et de garder les valeurs en double
- 15. tableau associatif de tableaux
- 16. Tableau de tableaux JavaScript
- 17. Ressources Android - Tableau de tableaux
- 18. 'Tableau de tableaux' dans matlab?
- 19. Obtenir les valeurs d'un tableau dans Android
- 20. comment je fais ajouter toutes les valeurs de ce tableau multidimensionnel ou le transformer en un tableau par ses valeurs
- 21. Comment changer les valeurs de tableaux de différentes classes?
- 22. jquery obtenir toutes les valeurs déroulantes
- 23. comparer deux tableaux, obtenir les valeurs Uncommon
- 24. Conversion tableau d'objets à tableau de tableaux
- 25. Obtenir toutes les combinaisons de valeurs possibles
- 26. Comment imprimer toutes les valeurs de Vector []
- 27. Comment puis-je collecter les clés de toutes les valeurs vraies dans un tableau?
- 28. tableaux Javascript - tableau enlever les éléments
- 29. valeurs extrait de tableau multidemensional
- 30. C# Object Array CopyTo lie les valeurs des deux tableaux?
Bien que cela ne semble pas être la meilleure réponse, mes seuls états d'âme sont que cette fonctionnalité est uniquement pris en charge par PHP> = 5.3. Mais encore ce serait la meilleure façon de le faire. – bmarti44
modifier à mon commentaire précédent, PHP en ligne et les fonctions ne sont supportés que par PHP> = 5.3. Si cette fonction utilisait juste une référence à une fonction, elle fonctionnerait dans les anciennes versions de PHP. – bmarti44