Ik gebruik PHP7 en wil uit volgende string

{"summoner":"starter-49-pdKPG","monsters":["starter-136-pHEpr","starter-50-tJs5X","starter-138-adyQp","starter-52-4jP3P","starter-141-vcNGp","starter-51-FMAp8"],"secret":"tNTEVdRh2I"}


volgende cijfers halen: 49, 136, 50, 138, 52, 141 en 51.

Deze cijfers komen bij voorkeur terecht in hun eigen variabele.

Het aantal cijfers verschilt vaak, dus het zou met een soort loop dienen te gebeuren.

Hoe kan ik dit aanpakken?
Ik denk dat je hier wel een eindje mee moet komen:

<?php

$pattern = '/-([0-9]+)-+/';
$string = '{"summoner":"starter-49-pdKPG","monsters":["starter-136-pHEpr","starter-50-tJs5X","starter-138-adyQp","starter-52-4jP3P","starter-141-vcNGp","starter-51-FMAp8"],"secret":"tNTEVdRh2I"}';

preg_match_all($pattern, $string, $result);

echo implode(' ', $result[1]);

?>
Dat werkt inderdaad, dank je wel!

Hoe krijg ik de aparte cijfers nu in elk hun eigen variabele?
Die heb je al in een array zitten:
$result[1]
Sorry voor de domme vraag, maar alle cijfers zitten in $result[1], ik wil graag de cijfers apart gebruiken. Hoe kan ik bijvoorbeeld enkel het getal 136 echo'en.
Regeltje tussenvoegen .
 preg_match_all( $pattern, $string, $result );

echo '<pre>' . print_r( $result[1], TRUE ) . '</pre>';

echo '<p>' . implode(' ', $result[1]) . '</p>';
<?php

$pattern = '/-([0-9]+)-+/';
$string = '{"summoner":"starter-49-pdKPG","monsters":["starter-136-pHEpr","starter-50-tJs5X","starter-138-adyQp","starter-52-4jP3P","starter-141-vcNGp","starter-51-FMAp8"],"secret":"tNTEVdRh2I"}';

preg_match_all($pattern, $string, $result);

$result = $result[1];

foreach($result as $key => $value) {
echo '<br>Key ' . $key . ' = ' . $value;
}

?>

Reageren