Если вы хотите подсчитать, сколько полей в JSON начинается с of_
, вы можете использовать start_with helper
$json = '{"_token":"c3wPhNtM86QujtsugZaZTonLUnWJBWjyyRMhorsd","name":null,"type":null,"no_of_guest":"200","time":"Breakfast","price":null,"service_charge":null,"of_1":["1","6"],"of_2":["8","11"],"of_3":["2","12"]}';
$array = json_decode($json, true);
$count = 0;
foreach ($array as $key => $value) {
if (starts_with($key, 'of_')) $count++;
}
return $count;
Output
3
Andесли вы хотите вычислить сумму каждых 2 значений в каждом of_
ключе
$json = '{"_token":"c3wPhNtM86QujtsugZaZTonLUnWJBWjyyRMhorsd","name":null,"type":null,"no_of_guest":"200","time":"Breakfast","price":null,"service_charge":null,"of_1":["1","6"],"of_2":["8","11"],"of_3":["2","12"]}';
$array = json_decode($json, true);
foreach ($array as $key => &$value) {
if (starts_with($key, 'of_')) {
$value = (int) $value[0] + (int) $value[1];
}
}
return $array;
Выход
{
"_token": "c3wPhNtM86QujtsugZaZTonLUnWJBWjyyRMhorsd",
"name": null,
"type": null,
"no_of_guest": "200",
"time": "Breakfast",
"price": null,
"service_charge": null,
"of_1": 7,
"of_2": 19,
"of_3": 14
}
И если вы хотите сложить все значения
$json = '{"_token":"c3wPhNtM86QujtsugZaZTonLUnWJBWjyyRMhorsd","name":null,"type":null,"no_of_guest":"200","time":"Breakfast","price":null,"service_charge":null,"of_1":["1","6"],"of_2":["8","11"],"of_3":["2","12"]}';
$array = json_decode($json, true);
$sum = 0;
foreach ($array as $key => &$value) {
if (starts_with($key, 'of_')) {
$sum += (int) $value[0] + (int) $value[1];
}
}
return $sum;
Вывод
40
Надеюсь, это поможет