Page 1 sur 1

Prendre seulement les élément de n a n1 d'un json

Posté : 28 oct. 2021, 11:25
par bagou450
Bonjour,

je voudrais prendre seulement les élément d'un nombre n a n1 d'un json par exemple sur un json je ne veux que les élément de 10 a 100 ou de 100 a 150 ect... et je veux mettre ceci dans une variable.
Pouvez vous m'aider a faire ceci?

Cordialement

Re: Prendre seulement les élément de n a n1 d'un json

Posté : 28 oct. 2021, 11:28
par or 1

Re: Prendre seulement les élément de n a n1 d'un json

Posté : 28 oct. 2021, 13:03
par bagou450
J'ai justement essayer avec

Code : Tout sélectionner

$output = array_slice($input, 10, 20);
Pour avoir les élément de 10 a 20 mais cela me renvoie les élément de 0 a 9...
Ok non c'est bon j'ai juste fait une petite erreur dans mon code

Maintenant autre question imaginons que mon json resemble a ceci

Code : Tout sélectionner

[ {'aa': 'cc'}, {'aa': 'bb'}, {'aa': 'cb'} ]
Comment puis je chercher dans quels élément aa contient un c? Sachant que en suivant mon exemple j'aimerais que cela me renvoie

Code : Tout sélectionner

[ {'aa': 'cc'}, {'aa': 'cb'} ] /code]

Re: Prendre seulement les élément de n a n1 d'un json

Posté : 28 oct. 2021, 13:59
par @rthur
tu parcours ton tableau avec un foreach() et dans ta boucle tu testes avec preg_match() la présence de "c"

Re: Prendre seulement les élément de n a n1 d'un json

Posté : 29 oct. 2021, 10:07
par bagou450
J'ai essayer ceci

Code : Tout sélectionner

$tempArray = []; foreach ($addons as $addon) { $matches = preg_match("/^test/", $addon->name, $matches, PREG_OFFSET_CAPTURE); if ($matches != null) $tempArray[] = [ 'id' => $addon->id, 'name' => $addon->name, 'website_url' => $addon->website_url, 'description' => $addon->description, 'date_updated' => $addon->date_updated, 'versions' => [ [ 'download_url' => $addon->versions[0]->download_url, 'full_name' => $addon->versions[0]->full_name, 'icon' => $addon->versions[0]->icon ] ] ]; } echo $tempArray;
Mais cela me renvoie []

Re: Prendre seulement les élément de n a n1 d'un json

Posté : 29 oct. 2021, 12:05
par @rthur
Fais un var_dump($matches) pour vérifier.

Et sinon quelques bonnes pratiques :
1) il est bizarre de mettre $matches en valeur de retour et aussi en résultat du preg_match.
2) Mets des accolades après le if() pour être sûr de ne pas avoir d'effet de bord.
3) indente ton code pour en faciliter la relecture

Re: Prendre seulement les élément de n a n1 d'un json

Posté : 29 oct. 2021, 14:18
par bagou450
Avec

Code : Tout sélectionner

$aa= preg_match("/^test/", $addon->name, $matches, PREG_OFFSET_CAPTURE); echo $aa;
le var dump me donne

Code : Tout sélectionner

000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000[]


Edit:

C est bon j'ai réussi en faite il fallait juste rajouter des strtolower() pour tout mettre en minuscule