У меня есть JSON в этом формате
[
{
"Property": "A",
"Value": "1"},
{
"Property": "B",
"Value": "1"},
{
"Property": "C",
"Value": "0"},
]
Я хочу получить данные таким образом
$ValueOfA = 1;
$valueOfB = 1;
$valueOfC = 0;
Что мне нужно сделать?
Получить каждое значение в отдельной переменной — это не то, что вам нужно.
Так что поместите его в массив. Я предполагаю, что вы хотите иметь доступ к значению через свойство, поэтому я отформатировал выходной массив.
$array = json_decode($json, true);
$formattedArray = array();
foreach($array as $element) {
$formattedArray[$element['Property']] = $element['Value'];
}
Это печатает:
Array
(
[A] => 1
[B] => 1
[C] => 0
)
использование json_decode
преобразовать JSON в массив.
$json = '[
{
"Property":"A",
"Value":"1"},
{
"Property":"B",
"Value":"1"},
{
"Property":"C",
"Value":"0"}
]';
$json_converted = json_decode($json, true);
print_r($json_converted);
Выход будет
Array
(
[0] => Array
(
[Property] => A
[Value] => 1
)
[1] => Array
(
[Property] => B
[Value] => 1
)
[2] => Array
(
[Property] => C
[Value] => 0
)
)
e.x
$json = '[
{
"Property":"A",
"Value":"1"},
{
"Property":"B",
"Value":"1"},
{
"Property":"C",
"Value":"0"}
]';
$json_converted = json_decode($json, true);
$temp = "";
foreach($json_converted as $value){
$temp = "valueOf".$value["Property"];
$$temp = $value['Value'];
}
var_dump($valueOfA);
var_dump($valueOfB);
var_dump($valueOfC);
Проверьте ниже код:
<?php
$jsonData = '[{
"Property": "A",
"Value": "1"},
{
"Property": "B",
"Value": "1"},
{
"Property": "C",
"Value": "0"}]';
$arr = json_decode($jsonData, true);
foreach ($arr as $key => $value) {
$returnData['ValueOf'.$value['Property']] = $value["Value"];
}
print_r($returnData);
?>
Выход :
Массив ([ValueOfA] => 1 [ValueOfB] => 1 [ValueOfC] => 0)