Я пытаюсь проанализировать массив всех нет из этого JSON:
[{"page":1,"threads":[{"no":20783566,"last_modified":1417023255},{"no":20789075,"last_modified":1417023250},{"no":20777699,"last_modified":1417023250}]},{"page":2,"threads":[{"no":20753588,"last_modified":1417023105},{"no":20784845,"last_modified":1417023103},{"no":20789489,"last_modified":1417023099},{"no":20788012,"last_modified":1417023074}]}]
Это то, что я до сих пор:
$array = json_decode($rawjson, true);
$threads = array();
$threadids = array();
for ($i = 0; $i < count($array); ++$i) {
array_push($threads, $array[$i]['threads']);
}
for ($i = 0; $i < count($threads); ++$i) {
array_push($threadids, $threads[$i]['no']);
}
Я знаю что первый for
выражение не работает так, как должно, мне нужно array_push, чтобы не создавать массив внутри исходного массива, но я не знаю, как это сделать.
Я не могу получить второе for
оператор, чтобы работать, потому что мне нужно цикл внутри каждого массива …
Конечный результат, который я хочу, это массив только no
ценности. Я не хочу никакого форматирования массива. Если кто-то знает лучший способ сделать это, пожалуйста, дайте мне знать.
Спасибо!
Я думаю, что вы хотите, это …
$array = json_decode($rawjson, true);
$threads = array();
$threadids = array();
for ($i = 0; $i < count($array); ++$i) {
array_push($threads, $array[$i]['threads']);
}
for ($i = 0; $i < count($threads); ++$i) {
foreach ($threads[$i] as $thread) {
array_push($threadids, $thread['no']);
}
}
использование print_r чтобы увидеть, как выглядят ваши массивы. Это спасет вашу жизнь!
Еще лучше … (лично я предпочитаю foreach в таких ситуациях)
$array = json_decode($rawjson, true);
$threads = array();
$threadids = array();
foreach ($array as $page) {
array_push($threads, $page['threads']);
}
foreach($threads as $temp) {
foreach ($temp as $thread) {
array_push($threadids, $thread['no']);
}
}
Других решений пока нет …