Intereting Posts
Дружественные URL-адреса в Laravel, я делаю это правильно? Как сделать / внедрить мой собственный дизайн дисплея продукта в плагин wooCommerce Laravel 5 – многомерная группаBy, orderBy & paginate Селективное кэширование Laravel Как создать многомерный массив из строки Есть ли способ заставить Yii перезагрузить модульные активы по каждому запросу? Пользовательская коллекция в Doctrine2 Как получить общие значения из двух разных массивов в PHP Предупреждение: date () ожидает, что параметр 2 длинный, строка указана в PHPUnit не может найти класс TestCase могут ли функции php использовать аргументы ключевых слов? (например, python) Parse Apache регистрируется в PHP с помощью preg_match PHP: Как получить предыдущее воскресенье определенной даты в прошлом ..? Начало работы с руководством по быстрому старту cakephp-file-storage PHPMailer: использование удаленного SMTP-сервера работает под локальным хостом, соединение отклонено (111) на удаленном сервере

Как получить доступ к JSON-декодированному массиву в PHP

Я вернул массив данных JSON из javascript в PHP , я использовал json_decode($data, true) чтобы преобразовать его в ассоциативный массив, но когда я пытаюсь использовать его с помощью ассоциативного index , я получаю сообщение об ошибке "Undefined index" Возвращенные данные выглядят так:

 array(14) { [0]=> array(4) { ["id"]=> string(3) "597" ["c_name"]=> string(4) "John" ["next_of_kin"]=> string(10) "5874594793" ["seat_no"]=> string(1) "4" } [1]=> array(4) { ["id"]=> string(3) "599" ["c_name"]=> string(6) "George" ["next_of_kin"]=> string(7) "6544539" ["seat_no"]=> string(1) "2" } [2]=> array(4) { ["id"]=> string(3) "601" ["c_name"]=> string(5) "Emeka" ["next_of_kin"]=> string(10) "5457394839" ["seat_no"]=> string(1) "9" } [3]=> array(4) { ["id"]=> string(3) "603" ["c_name"]=> string(8) "Chijioke" ["next_of_kin"]=> string(9) "653487309" ["seat_no"]=> string(1) "1" } 

Как мне получить доступ к массиву в PHP ? Спасибо за любое предложение.

Поскольку вы передаете true как второй параметр json_decode , в приведенном выше примере вы можете получить данные, делающие что-то похожее:

 $myArray = json_decode($data, true); echo $myArray[0]['id']; // Fetches the first ID echo $myArray[0]['c_name']; // Fetches the first c_name // ... echo $myArray[2]['id']; // Fetches the third ID // etc.. 

Если вы НЕ передаете true как второй параметр json_decode он вместо этого вернет его как объект:

 echo $myArray[0]->id; 
 $data = json_decode($json, true); echo $data[0]["c_name"]; // "John" $data = json_decode($json); echo $data[0]->c_name; // "John" 
 $data = json_decode(...); $firstId = $data[0]["id"]; $secondSeatNo = $data[1]["seat_no"]; 

Именно так 🙂

Когда вы хотите перебрать в массив с несколькими измерениями, вы можете использовать foreach следующим образом:

 foreach($data as $users){ foreach($users as $user){ echo $user['id'].' '.$user['c_name'].' '.$user['seat_no'].'<br/>'; } } 

Поскольку вы передаете true как второй параметр json_decode , в приведенном выше примере вы можете получить данные, делающие что-то похожее:

 <?php $json = '{"a":1,"b":2,"c":3,"d":4,"e":5}'; var_dump(json_decode($json)); var_dump(json_decode($json, true)); ?>