Используйте значения массива в качестве другого индекса массива. недопустимый тип смещения

Привет у меня есть 3 массива в моем файле JSON

{
"Temperatures": [26.00, 26.50, 26.50, 0.00, 0.00, 20.00, 0.00, 0.00, 0.00],
"ThermoStatus": [0, 0, 0, -6, -6, -6, -3, -6, -6],
"FurnaceArray": [{
"Oven": {
"Thermo": [1, 4],
"SetPoint": 60.5
},
"Part": {
"Thermo": [2, 3],
"SetPoint": 60.5
},
"Outer": {
"Thermo": [5],
"SetPoint": 60.5
},
"TimerElapsed": 79,
"HeaterOutput": 0.600,
"ProgramPhase": 1,
"HeaterState": 3,
"OvenStatus": {
"DoorOpened": true,
"EmergencyPressed": false,
"ProgramDone": false
}
},
{
"Oven": {
"Thermo": [5, 6],
"SetPoint": 60.5
},
"Part": {
"Thermo": [7],
"SetPoint": 60.5
},
"Outer": {
"Thermo": [5],
"SetPoint": 60.5
},
"TimerElapsed": 79,
"HeaterOutput": 0.600,
"ProgramPhase": 1,
"HeaterState": 3,
"OvenStatus": {
"DoorOpened": true,
"EmergencyPressed": false,
"ProgramDone": false
}
}
]
}

Я объединил Термо Духовки и Термо Части. Как это.

$comTemperatures = array($json->FurnaceArray[0]->Oven->Thermo , $json->FurnaceArray[0]->Part->Thermo);

А теперь я хочу использовать $ comTemperas в качестве индекса для Thermostatus. Как я могу показать температуры, индекс которых указан в $ comTemperas

теперь у меня есть это

foreach ($comTemperatures as $value) {
if ($thermostatus[$value] == 0) {
echo $temperatures[$value];
}
}

но я получаю ошибку «недопустимый тип смещения» в foreachloop.
Кто-нибудь может мне помочь

2

Решение

Если я вас правильно понимаю

$jsonArray = json_decode($jsonString); //$jsonString is the JSON you shared

$thermostatus = $jsonArray->ThermoStatus;
$temperatures = $jsonArray->Temperatures;
//Merge two arrays into one instead of making one array of arrays
$comTemperatures = array_merge($json->FurnaceArray[0]->Oven->Thermo , $json->FurnaceArray[0]->Part->Thermo);
foreach ($comTemperatures as $value) {
if ($thermostatus[$value] == 0) {
echo $temperatures[$value];
}
}

Пример на: https://eval.in/859257

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector