我知道这里有很多类似的问题,但我遇到的问题是设置其他json文件数组的方法与我的不一样。
我想要做的只是一个简单的过程,但由于我不是精通json数组而且我是其他东西,解决方案完全是我的目标。
我只想在本地json文件中显示数据,并为返回的每个项创建PHP变量。
json文件很简单,看起来像这样......
[
{
"titleOne": "Foo",
"textOne": "Bar",
"titleTwo": "Foo",
"textTwo": "Bar"
}
]
它总是只包含这4个项目。然后我使用以下PHP来读取和解码文件...
$data = file_get_contents ('./data.json');
$json = json_decode($data, true);
foreach ($json as $key => $value) {
foreach ($value as $key => $val) {
echo $key . '====>' . $val . '<br/>';
}
}
但这只是输出数据。我试图让这4个项目中的每一个成为变量。实施例...
$titleOne
$textOne
$titleTwo
$textTwo
...以便可以在表格中使用变量。
我发现了很多类似的问题,但json数据总是设置不同,导致结果出错。
答案 0 :(得分:3)
为什么不简单地定义它是否总是只有4:
$titleOne = $json[0]['titleOne'];
$textOne = $json[0]['textOne'];
$titleTwo = $json[0]['titleTwo'];
$textTwo = $json[0]['textTwo'];
答案 1 :(得分:3)
您可以使用list将元素提取到变量中。请记住,它只适用于数值数组。
FirebaseApp
答案 2 :(得分:0)
使用php,您不能使用变量来命名另一个变量。但是您可以使用关联数组来执行此操作。
true
中的json_decode($data, true);
已经以关联数组的形式返回数据。要访问titleOne的值,您只需执行$json['titleOne']
。这会给你Foo
。
答案 3 :(得分:0)
使用php,您可以使用变量来命名另一个变量。 只需使用Variable variables:
$a = 'var';
$$a = 'hello world';
echo $var;
// output : hello word
在你的情况下:
您不必将json数据包装在数组中并进行2次循环:
{
"titleOne": "Foo",
"textOne": "Bar",
"titleTwo": "Foo",
"textTwo": "Bar"
}
您可以这样创建动态变量:
$data = file_get_contents ('./data.json');
$json = json_decode($data, true);
foreach ($json as $key => $val) {
$$key = $val;
}
echo $titleOne;
// output : Foo