PHP compte les éléments dans un tableau multidimensionnel
Comme vous pouvez le voir dans le tableau suivant, il y a trois éléments qui apparaissent sur Nov 18, et de l'autre les deux éléments qui apparaissent sur Nov 22. Quelqu'un peut-il me dire comment je peux récupérer le compte de 3 et 2 respectivement, à partir de ce tableau? En gros, j'ai envie de finir avec un résultat quelque chose comme ceci:
Nov 18, 2011 = 3 éléments
Nov 22, 2011 = 2 éléments
De cours, les dates et le nombre de différentes dates varient à chaque fois. Voici le tableau:
Array
(
[0] => Array
(
[0] => Array
(
[2011-11-18 00:00:00] => C
)
[1] => Array
(
[2011-11-18 00:00:00] => I
)
[2] => Array
(
[2011-11-18 00:00:00] => S
)
)
[1] => Array
(
[0] => Array
(
[2011-11-22 00:00:00] => C
)
[1] => Array
(
[2011-11-22 00:00:00] => S
)
)
)
source d'informationauteur DanielAttard | 2011-11-27
Vous devez vous connecter pour publier un commentaire.
Est-ce de travailler pour ce que vous avez besoin?
Imprime:
Note: ceci suppose que vous serez toujours obtenir les données que vous structuré votre tableau et que chaque jour sera formaté de la même. Si vous ne pouvez pas supposer que chaque jour sera formaté, ce serait une simple conversion à l'aide de la fonction date (). Si vous ne pouvez pas supposer que vous obtiendrez les données structuré exactement comme cela, la meilleure façon de lutter contre ce serait sans doute par une fonction récursive.
Vous pouvez utiliser:
Compter le nombre de feuilles dans un tableau imbriqué arbre
les réponses sont correctes pour votre exemple représentatif, mais je voudrais ajouter une autre solution, qui fonctionne indépendamment de combien de tableaux imbriqués, vous pouvez créer. il parcourt le tableau de manière récursive et compte de tous les éléments dans tous les sous-ensembles.
elle renvoie le nombre total d'éléments dans le tableau. dans le deuxième argument, vous pouvez spécifier un tableau
de référence qui permettra de contenir le nombre par clé unique dans l' (imbriqué) array(s).
exemple:
résultats dans:
En supposant que votre exemple du tableau est représentatif:
Se fera l'écho le nombre de tableaux à l'intérieur de chacun des principaux éléments de tableau. Dans votre exemple, qui serait également le nombre d'entrées pour chaque date.
Ce n'est pas bien sûr de vérifier les dates elles-mêmes
Vous pouvez utiliser
array_walk_recursive()
pour obtenir l'accès à tous de la feuille des nœuds dans un tableau de structure.Quelque chose de semblable à ce qui devrait fonctionner pour vous:
Sorties:
Pour votre
$array
structure je pense que le plus maigre façon est d'utiliserforeach
et puis la date de l'obtention de la valeur et de lacount()
de chaque valeur:Avec votre
$array
cela donne:Si vous êtes à la recherche d'une façon plus générale, vous pouvez faire usage de
RecursiveArrayIterator
etRecursiveIteratorIterator
de parcourir plus de toutes les feuilles de clé/valeur des éléments puis compte le nombre de touches:Espère que cette aide.
Voici ma variante récursive:
Ce sera de retour:
Si vous voulez compter les éléments unidimensionnelle et bidimensionnelle, vous pouvez essayer: