Это образец массива в кодировке json -
[
{"item_id":"8057","category":"MEN'S CLOTHING","quantity":"3.000"},
{"item_id":"22647","category":"WOMEN'S CLOTHING","quantity":"7.000"},
{"item_id":"1556","category":"MEN'S CLOTHING","quantity":"2.000"},
{"item_id":"4179","category":"WOMEN'S CLOTHING","quantity":"1.000"},
{"item_id":"21218","category":"WOMEN'S CLOTHING","quantity":"2.000"}
]
Я хочу добавить quantity к тому же category.
Нужен конечный результат что-то вроде-
"MEN'S CLOTHING" : 5,
"WOMEN'S CLOTHING": 10
Примечание: значение ключа category динамическое.






Вы можете попробовать что-то вроде этого:
$dataArray = json_decode($jsonArray, true);
$allValuesWithCount = array();
foreach($dataArray as $arrayValues) {
$allValuesWithCount[$arrayValues['category']] += $arrayValues['quantity'];
}
print_r($allValuesWithCount);
Рад это слышать.
Вы можете добиться этого, используя приведенный ниже код:
$json = json_decode($string,true);
$allCount = [];
foreach ($json as $key => $value){
$allCount[$value['category']] += $value['quantity'];
}
foreach ($allCount as $category => $value){
echo $category ." : ".$value."<br>";
}
Но когда я запускаю его в другой версии PHP через консоль, он выдает предупреждения и отображает следующий результат:
PHP Notice: Undefined index: MEN'S CLOTHING in /home/akshay/so.php on line 15 PHP Stack trace: PHP 1. {main}() /home/akshay/so.php:0
PHP Notice: Undefined index: WOMEN'S CLOTHING in /home/akshay/so.php on line 15 PHP Stack trace: PHP 1. {main}() /home/akshay/so.php:0
MEN'S CLOTHING : 5
WOMEN'S CLOTHING : 10
Когда я запускаю его в своем браузере с PHP версии 5.6 и FPM, он выдает ошибку Undefined Index.
Также я пробовал разные версии PHP, это было просто предупреждение для обеих категорий.
это строка
json, используйтеjson_decode, чтобы преобразовать ее в массив php