Я получил данные json с сервера и декодирую их с помощью json_decode (value, true);

Используя функцию print_r, я получил этот массив в качестве вывода

Array
(
    [id] => 120
    [key] => 7ca04960a36dbb7f4b7c8607bb3
    [num] => 0
)

Array
(
    [id] => 121
    [key] => 7ca04960a36dccgki49g6dfg57
    [num] => 0
)

Я хочу отображать декодированные данные с помощью цикла while.

while($row = mysqli_fetch_assoc($result)) {
    $json = json_decode($row['post_req'], true);

    echo "<pre>";
    print_r($json);
    echo "</pre>";
}

Пример:

id = 120,
key = 7ca04960a36dbb7f4b7c8607bb3,
num = 0

Как я могу распечатать данные?

-1
Dhaval Makwana 2 Июл 2021 в 10:52

3 ответа

Отредактировано: похоже, вы изменили некоторые детали.

Похоже, вы получаете несколько массивов

$output = array();

while($row = mysqli_fetch_assoc($result)) {
    $json = json_decode($row['post_req'], true);
    $ouput[] = $json;
}

Это даст вам многослойный массив, и если вам просто нужен идентификатор, вы можете сделать это

for ($i = 0; $i < sizeof($output); $i++) {
    echo "id =" . $output[$i]['id'] . " <br/>";
}

Или вы можете использовать это только для получения идентификатора

for ($i = 0; $i < sizeof($output); $i++) {
    foreach ( $output[$i] as $key => $value ) {
      if ('id' === $key) {
        echo "$key = $value <br />";
      }
    }
}

Ожидаемый результат

id = 120
id = 121

Если вы хотите, чтобы все три значения использовали это

for ($i = 0; $i < sizeof($output); $i++) {
    foreach ( $output[$i] as $key => $value ) {
      echo "$key = $value <br />";
    }
}

Ожидаемый результат

id = 120
key = 7ca04960a36dbb7f4b7c8607bb3
num = 0
id = 121
key = 7ca04960a36dccgki49g6dfg57
num = 0
2
DevTurtle 2 Июл 2021 в 09:02
foreach($json as $key => $value) {
    echo "$key: $value \n";
}
1
Костя Рябченко 2 Июл 2021 в 08:05

Вы должны использовать массив цикла

Пример :

foreach($testArr as $testVal){
       echo $testval['id'];
    }
0
Sanghun Yang 2 Июл 2021 в 07:58