我有一个$ abcd变量,以下是输出:
echo $abcd;
//Output:
{
"NID": 2,
"STS": "3",
"Options": {
"Model": "model value",
"Location": "location value",
"Price": "price value",
"Name": "Value"
}
}
在“选项”中,我有3个名称和值。名称不是固定的,可以是任何名称,选项中的对象数可以是0到100之间的任何一个。 我想知道是否有任何方法(首选JSON格式)我可以将名称及其相关值分配给另外两个变量。
$的varName [0] =模型
$ varValue [0] =模型值
$的varName [1] =位置
$ varValue [1] =位置值
$的varName [2] =价格
$ varValue [2] =价格值
答案 0 :(得分:1)
你不需要将它们分配给其他任何东西,只需要json_decode()
JSONString,它们就会成为你可以按原样使用的PHP对象
$obj = json_decode($abcd);
echo $obj->Options->Model;
echo $obj->Options->Location;
echo $obj->Options->Price;
你的评论@
我说名字有所不同,模特,位置和价格只是一个例子
然后你可以做
foreach ($obj->Options as $prop => $val) {
sprintf( '%s = %s', $prop, $val );
}
答案 1 :(得分:1)
我不确定这背后的逻辑是什么,
但你可以通过使用array_key和amp;的混合来实现这一点。 array_values如下:
$abcd = '{
"NID": 2,
"STS": "3",
"Options": {
"Model": "model value",
"Location": "location value",
"Price": "price value",
"Name": "Value"
}
}';
$data = json_decode($abcd, true);
$keys = array_keys($data['Options']);
$values = array_values($data['Options']);
echo $keys[0] . " - " . $values[0]; // Model - model value
echo $keys[1] . " - " . $values[1]; // Location - location value
// ..... and so on.
答案 2 :(得分:0)
$data = json_decode($abcd, true);
foreach($data['Options'] as $index => $value) {
//do whatever you want
}
//or access them directly
$data['Options']['Model']