У меня есть массив JSON как это:Установка переменных на основе последнего элемента в массиве
"spellsCount": [
{
"value": 0,
"globalID": 26000000
},
{
"value": 0,
"globalID": 26000001
},
{
"value": 0,
"globalID": 26000002
},
{
"value": 0,
"globalID": 26000003
},
{
"value": 0,
"globalID": 26000005
},
{
"value": 0,
"globalID": 26000009
},
{
"value": 0,
"globalID": 26000011
}
],
Теперь то, что мне нужно сделать, это сделать петлю PHP или что-то, что будет проходить через этот весь массив и сделать переменные со значением 0;
Теперь сложный бит в том, что не все GlobalID
s показывают в этом массиве. Например, 26000010
не отображается.
Мне нужно, чтобы переменная, как $spells26000000 = 0;
для каждого элемента. ВКЛЮЧАЯ те, которые находятся между ними, но отсутствуют. Таким образом, была бы использована переменная $spells26000010 = 0;
, если бы использовался вышеупомянутый массив.
Initally Я это:
for ($i=0; $i < 100; $i+=1){// start at index 0 (1st value) and increment by 1
if (isset($data['spellsCount'][$i])) { // just in case there aren't actually 100
// Use variable variables to create the $achievement variables you want
$globalID = $data['spellsCount'][$i]['globalID'];
${"spells$globalID"} = $data['spellsCount'][$i]['value'];
}
}
Но потом я понял, что некоторые значения не всегда будут показывать, так что я понял, что мне нужно сделать это так, но я не знаю, как.
Кстати, Я использую json_decode
как этот $data = json_decode($jsondata, true);
Подождите ... так что вы пытаетесь сделать? Динамически создавать переменные? Что происходит вместо этого, когда вы пытаетесь это сделать? – Zarathuztra
@ Zarathuztra мой текущий код работает, но он не заполняет пробелы. Например, вы можете видеть, что globalID, заканчивающийся на 10, не находится в массиве, но его нужно сделать переменной. –