Подскажите, пожалуйста, есть такой код
<?php
//адрес сайта
$url = '=';
// получаем содержимое сайта
$json = file_get_contents($url);
// преобразуем в массив
$array = json_decode($json, true);
// выводим значение переменной contactId
echo $array['orders']['orderid'];
?>
И такой json:
{"status":"ok","orders":[{"orderid":"29760","number":"29760","ordercode":"2013983770","ordername":"sx \u0434\u043b\u044f \u0426\u0438\u0444\u0440\u0430","ordersource":false,"clientid":"13121","clientname":"\u0412\u044f\u0447\u0435\u0441\u043b\u0430\u0432 \u0414\u0430\u043d\u0438\u043b\u044c\u0447\u0435\u043d\u043a\u043e","clientemail":"sl@y.ua","clientphone":"","clientaddress":"","managerid":"5","cdate":"2018-01-18 13:37:38","dateto":"2018-10-17 13:37:00","deliveriID":"0","deliverinote":"","deliveriprice":"0.00","paymentid":"0","storagetoid":"0","storagetoexternalid":"","sum":"0.00","margin":"0.00","sumbase":"0.00","currency":"UAH","statusid":"159","statusname":"\u041e\u0442\u043a\u0430\u0437","statuscolor":"#ff6969","workflowid":"25","workflowname":" \u0441\u0438\u0441\u0442\u0435\u043c\u0430","contractorid":"0","contractorname":null,"customfields":[{"key":"\u041f\u0440\u0438\u0447\u0438\u043d\u0430\u043e\u0442\u043a\u0430\u0437\u0430","name":"\u041f\u0440\u0438\u0447\u0438\u043d\u0430 \u043e\u0442\u043a\u0430\u0437\u0430","value":"\u0418\u0433\u043d\u043e\u0440"}],"products":[],"clientcompany":"\u0414\u0430\u043d\u0438\u043b\u044c\u0447\u0435\u043d\u043a\u043e \u0412\u044f\u0447\u0435\u0441\u043b\u0430\u0432","clientcode":"22986425","weight":0,"gabarite":0}]}
Не могу вывести количество orders.
Подскажите, пожалуйста, как это сделать.
print_r ($array->orders);
print_r ($array->orders[0]->orderid);
-если есть несколько order как получить из их всех информацию?
foreach($array->orders as $order) {
echo $order->orderid;
}
вы не совсем верно обращаетесь к обработанному массиву. После обработки json_decode
массив имеет вид:
Array
(
[status] => ok
[orders] => Array
(
[0] => Array
(
[orderid] => 29760
[number] => 29760
[ordercode] => 2013983770
[ordername] => sx для Цифра
[ordersource] =>
[clientid] => 13121
[clientname] => Вячеслав Данильченко
[clientemail] => sl@y.ua
[clientphone] =>
[clientaddress] =>
[managerid] => 5
[cdate] => 2018-01-18 13:37:38
[dateto] => 2018-10-17 13:37:00
[deliveriID] => 0
[deliverinote] =>
[deliveriprice] => 0.00
[paymentid] => 0
[storagetoid] => 0
[storagetoexternalid] =>
[sum] => 0.00
[margin] => 0.00
[sumbase] => 0.00
[currency] => UAH
[statusid] => 159
[statusname] => Отказ
[statuscolor] => #ff6969
[workflowid] => 25
[workflowname] => система
[contractorid] => 0
[contractorname] =>
[customfields] => Array
(
[0] => Array
(
[key] => Причинаотказа
[name] => Причина отказа
[value] => Игнор
)
)
[products] => Array
(
)
[clientcompany] => Данильченко Вячеслав
[clientcode] => 22986425
[weight] => 0
[gabarite] => 0
)
)
)
Как видите, вы пропустили ключ 0
Поэтому вывести нужные данные вы можете вот так:
echo $array['orders'][0]['orderid'];
echo $array['orders'][0]['number'];
А если заказов у вас много и нужно из каждого забирать указанные поля, то обычным перебором:
$orders = [];
foreach ($array['orders'] as $order) {
$orders[$order['orderid']] = $order['number']; // ключи это ID заказов, значения это номера. Тут уж в зависимости от задачи как нужно укомплектовать значения
}
при такой обработке данных можно отдельно вывести все ID заказов при помощи
echo implode (', ', array_keys($orders)) // ID заказов в строку через запятую
echo implode (', ', $orders) // номера заказов в строку через запятую
implode - ссылка на доки
array_keys - ссылка на доки
orders это массив, который может содержать n-количество массивов. В вашем случае он один, с индексом 0.
Либо обращаться по индексу (если точно известно количество вложенных массивов)
$array['orders'][0]['orderid'];
Либо пробежать циклом foreach (если нужно обработать все массивы, в том случае если их будет больше одного)
foreach ($array['orders'] as $item)
{
echo $item['orderid'];
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Как можно в wordpress импортировать данные xlsx, обработать эти данные и вывести результат на фронтенд? Также в файле xlsx могут быть формулы, те
Имеется ошибка при выводе постов - дублируются посты в странице где открыт определенный пост, в файле footerphp я добавил следующий фрагмент кода...
Веб Сервер не позволяет создать ссылку на storage папку, решил вопрос просто переместив папку storage в public, все работает,
Какой наилучший способ для хранения плотной матрицы с целью параллельного умножения матрицы на матрицу?