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

Petit nouveau ! | 7 Messages

28 oct. 2021, 11:25

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

Mammouth du PHP | 2703 Messages

28 oct. 2021, 11:28


Petit nouveau ! | 7 Messages

28 oct. 2021, 13:03

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]

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

28 oct. 2021, 13:59

tu parcours ton tableau avec un foreach() et dans ta boucle tu testes avec preg_match() la présence de "c"
Quand tout le reste a échoué, lisez le mode d'emploi...

Petit nouveau ! | 7 Messages

29 oct. 2021, 10:07

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 []

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

29 oct. 2021, 12:05

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
Quand tout le reste a échoué, lisez le mode d'emploi...

Petit nouveau ! | 7 Messages

29 oct. 2021, 14:18

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