Как обработать такой массив на php

211
19 апреля 2019, 02:50

в качестве value в цикле

foreach($_POST as $key => $value) {
$message .= $key; 
  $message .= ": " . $value . "\n"; 
}

приходит вот такой массив:

{"sys":"none","systranid":"0","orderid":"1987774240","products":[{"name":"Шарики для роликов","quantity":"2","amount":"2000","price":"1000","sku":"00-00003462"},{"name":"Коньки","quantity":"3","amount":"6000","price":"2000","sku":"00-00003463"}],"amount":"8000"}

Как мне его обработать и собрать в другой массив, чтобы можно было с ним работать вот так: (из массива выше мне нужно только name и quantity.)

foreach($produts as $el) {
echo $el[name].' / '. $el[quantity].'шт'; 
}

цикл должен вывести:

Шарики для роликов / 2шт
Коньки / 3шт

Это вообще массив или json ответ, чтобы примеры найти на php?

Answer 1
$postData = json_decode($_POST);
if($postData === false)
{
   return \Exception('Json невалидный!');
} 
if(!isset($postData['products']))
{
   return \Exception('Нет ключа products!');
}
foreach($postData['products'] as $product)
{
   if(isset($product['name']) && isset($product['quantity']))
      echo $product['name'].' / '. $el['quantity']. 'шт'; 
}
Answer 2
$_POST='{"sys":"none","systranid":"0","orderid":"1987774240","products":[{"name":"Шарики для роликов","quantity":"2","amount":"2000","price":"1000","sku":"00-00003462"},{"name":"Коньки","quantity":"3","amount":"6000","price":"2000","sku":"00-00003463"}],"amount":"8000"}';
$json=json_decode($_POST,true)['products'];
$out=array_map( function($v){ return $v['name'].' / '.$v['quantity'].'шт'; }, $json);
echo implode('<br>',$out);
READ ALSO
Шаблон single.php

Шаблон single.php

У меня есть post type "news" я сделал для него шаблон single-newsНо когда перехожу по ссылки на конкретную новость мне выдает 404 страницу

189
Почему входит в массив?

Почему входит в массив?

Почему выводит "входит"?

172
Поиск блока кода с последующей заменой в SQL

Поиск блока кода с последующей заменой в SQL

Всем приветНужно найти и поменять блок кода в БД

173