Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
0 / 0 / 0
Регистрация: 09.08.2016
Сообщений: 4
1

Вывести переменные PHP со значениями из полученной строчки json

09.08.2016, 07:54. Показов 2633. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, получаю данные по запросу на сервер в формате json вот такого вида:
PHP
1
[{"tovar1":"23","tovar2":"78","tovar3":"44","tovar4":"234"}]
мне нужно вывести отдельные переменные со своими значениями:
23
78
44
234
и т.д, так как в дальнейшем эти значения будут подставляться в БД и периодически обновляться через cron (это уже другая тема).
Перерыв много информации в инете и здесь по форуму, перепробовал разные варианты - но ничего не получается(
Вот код запроса и декодирование:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
$ch = curl_init();
 
curl_setopt($ch, CURLOPT_URL, 'http://site.ru/handler_api.php?api_key=$***************&action=getProductCol');
 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
 
$result = curl_exec($ch);
 
curl_close($ch);
 
$results = json_decode($result, true);
 
echo "<pre>"; print_r($results);
получается вывести в массив или дамп, а дальше для меня пока еще лес((
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.08.2016, 07:54
Ответы с готовыми решениями:

Нужно вывести из Listbox текст выбранной строчки и скачать файл с именем строчки
Дело такое. Программа при запуске сканирует файлы в нужной папку на ftp сервере и забивает имена в...

Декодирование JSON-строки, полученной с удаленного сервера
Здравствуйте. Необходимо получить и декодировать JSON-строку, полученную с удаленного сервера. Для...

Вывести число в конце первой строчки и переместить в начало последней строчки, двигаясь по диагонали
Программа должна предложить ввести натуральное число, далее вывести его в конце первой строчки и...

Заполнение таблицы с динамическим размером html значениями матрицы, полученной через Javascript
Проблема такая: нужно как-то создать таблицу, которая будет заполняться значениями элементов...

8
146 / 105 / 44
Регистрация: 30.04.2016
Сообщений: 550
09.08.2016, 08:08 2
У нас получается на выходе обычный Array.
А чем Array можно пройти? foreach!
PHP
1
2
3
4
<?php
foreach ($resuts as $tovar) {
     echo $tovar; // 23... 78.... N
}
1
0 / 0 / 0
Регистрация: 09.08.2016
Сообщений: 4
09.08.2016, 08:21  [ТС] 3
Исправил ошибку в "resuts" на "results", но всеравно ничего не выводится, кроме массива
0
146 / 105 / 44
Регистрация: 30.04.2016
Сообщений: 550
09.08.2016, 08:27 4
Прошу прощения за то, что с утра глупость написал
Вот 100% рабочий код:
PHP
1
2
3
4
 $json = '[{"tovar1":"23","tovar2":"78","tovar3":"44","tovar4":"234"}]';
        foreach (json_decode($json, true)[0] as $product) {
            echo $product;
        }
1
0 / 0 / 0
Регистрация: 09.08.2016
Сообщений: 4
09.08.2016, 08:53  [ТС] 5
Спасибо за ответ, но что-то я никак не могу понять.. (извиняюсь),
но ведь строчка json берется из стороннего сервера из периодически изменяющимися остатками на складе, мы не можем ее статически вписать в код, а если нет то тогда как поместим берщуюся строку из сервера в $json? и echo $product; выводит все значения одной переменной, а мне нужно на выходе получить переменные каждого из значений, или может я что то не так понимаю? всю ночь перерыл об этом, повсюду где примеры как вывести из массива - повсюду структура строчек разная с разными вложениями, сам думал, експерементировал по разному - но в итоге то ошибки, то ничего..
0
146 / 105 / 44
Регистрация: 30.04.2016
Сообщений: 550
09.08.2016, 09:02 6
Вот вы же сами получаете:
PHP
1
$results = json_decode($result, true);
т.е. вам нужно написать:
PHP
1
2
3
4
<?php
foreach ($results[0] as $key => $product) {
    echo $key . ' - ' . $product; // попробуйте выполнить этот код!
}
Но! Если у вас $results многомерный массив, в котором больше 1й записи, т.е. вида: [ [products], [products], [..] ]
То нужно делать вот такой код:

PHP
1
2
3
4
5
6
<?php
foreach ($results as $result) {
    foreach ($result as $product) {
         echo $key . ' - ' . $product; // попробуйте выполнить этот код!
    }
}
0
0 / 0 / 0
Регистрация: 09.08.2016
Сообщений: 4
09.08.2016, 09:36  [ТС] 7
При выводе вот таким кодом:
PHP
1
2
$results = json_decode($result, true);
echo "<pre>"; print_r($results);
получаю:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Array
 
(
 
    [0] => Array
 
        (
 
            [tovar1] => 23
 
            [tovar2] => 78
 
            [tovar3] => 44
 
            [tovar4] => 234
 
        )
 
 
 
)
При выводе этим кодом:
PHP
1
2
3
foreach ($results[0] as $key => $product) {
    echo $key . ' - ' . $product; // попробуйте выполнить этот код!
}
- получаю:
PHP
1
tovar1 - 23tovar2 - 78tovar3 - 44tovar4 - 234
как-то все в перемешку (значение с обьектом).
Второй скрипт вреде все ок:
PHP
1
- 23 - 78 - 44 - 234
только не понимаю пока как разбить по отдельности все значения из "$product" со своей переменной и убрать "_", просто пока только начал разбираться в PHP и иногда непонимаю даже самых елементарных вещей, которые после того как потратил много времени на кучу ненужного мусора - понимаешь что все было на поверхности

Добавлено через 3 минуты
черточку убрал правильно?
PHP
1
2
3
4
5
foreach ($results as $result) {
    foreach ($result as $product) {
         echo $key . $product; // попробуйте выполнить этот код!
    }
}
0
146 / 105 / 44
Регистрация: 30.04.2016
Сообщений: 550
09.08.2016, 09:44 8
Да, вы точно не понимаете элементарных вещей. Я вам подсказал, но я не могу разжевать все) Читайте доку по PHP, вопрос очень глупый.
1
0 / 0 / 0
Регистрация: 20.09.2015
Сообщений: 40
11.08.2016, 10:22 9
Приветствую! У меня вопрос связанный.

Сам не мог найти,

как в json передать массив значений гекоординат, которые записаны в одно поле?

В БД так записано:

название переменной geolocation,

ее значения:

51.42223, 83.553251
51.721510, 83.378146
53.388373, 83.988623
51.945055, 85.34352
53.900598, 83.4539
53.19899, 84.62386 и т. д.

Сохранение синтаксиса в строке обязательно.

Ткните куда-нибудь...
0
11.08.2016, 10:22
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.08.2016, 10:22
Помогаю со студенческими работами здесь

Как вывести данные JSON через PHP?
Есть ссылка на JSON код http://188.225.25.159:6734/api/diets Получаю его таким образом: $json...

Как вывести нужные данные из JSON используя PHP
мне надо достать то что содержится в message. { &quot;data&quot;: , &quot;paging&quot;: { ...

Парсинг json , переменные из json
Всем доброго времени суток, в общем столкнулся с проблемой в силу отсутствия достаточного колл-ва...

Не получается вывести таблицу со значениями функции, либо со значениями аргумента
Ни в какую не отображается. Делаю все по инструкциям. Нужно чтобы получились таблицы: со значением...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru