Как правильно извлечь значения из массива json в php - PullRequest
1 голос
/ 02 мая 2020

Я пытаюсь извлечь значения из приведенного ниже списка массивов из JSON, который не работает для меня, так как я попробовал json_decode во всех вариантах и ​​проверил все случайные ответы в этом форуме нет кажется, что это соответствует моей проблеме.

вот мой проверенный код

$someArray = json_decode($result, true);
 print_r($someArray);
  foreach ($someArray as $key => $value) {
    echo $value["account_number"]  .', '.$value["account_name"] "<br>";
  }

вот результат из приведенного выше кода

Array ( [status] => 1 [message] => Account number resolved [data] => Array ( [account_number] => 20640888125 [account_name] => John Doe [bank_id] => 18 ) )

Warning: Illegal string offset 'account_name' in C:\xampp\htdocs\apks\bankre.php on line 24
A

Я не могу получить я знаю, что каждое значение по отдельности не делает что-то правильно, чего мне не хватает?

1 Ответ

2 голосов
/ 02 мая 2020

Вы пытаетесь проиндексировать значения, которые не являются массивами, так как status - 1, а , сообщение - Account number resolved.

Если вы хотите напечатать массив для ключа data , вам не нужно индексировать, но вы можете просто напечатать ключ и значение:

foreach ($someArray["data"] as $key => $value) {
    echo $key . ', ' . $value . "<br>";
}

Выходные данные

account_number, 20640888125
account_name, John Doe
bank_id, 18

См. Демонстрационную версию https://3v4l.org/0flvj

Чтобы получить доступ к значениям посредством индексации, вы можете сначала проверить, является ли это массивом:

foreach ($someArray as $key => $value) {
    if (is_array($value)) {
        echo $value["account_number"] . ', ' . $value["account_name"] . "<br>";
    }
}

См. Еще одну демонстрацию https://3v4l.org/lpEtW

...