基于PHP中的对象索引从JSON检索数据
我有一个$abcd变量,输出如下:基于PHP中的对象索引从JSON检索数据,php,json,Php,Json,我有一个$abcd变量,输出如下: echo $abcd; //Output: { "NID": 2, "STS": "3", "Options": { "Model": "model value", "Location": "location value", "Price": "price value", "Name": "Value" } } 在“选项”中,每个选项有3个名称和值。名称不是固定的,可以是anythings,选项中的对象数量可以是0到100
echo $abcd;
//Output:
{
"NID": 2,
"STS": "3",
"Options": {
"Model": "model value",
"Location": "location value",
"Price": "price value",
"Name": "Value"
}
}
在“选项”中,每个选项有3个名称和值。名称不是固定的,可以是anythings,选项中的对象数量可以是0到100之间的任意数量。
我想知道是否有任何方法(首选JSON格式)可以将名称及其相关值分配给另外两个变量
$varName[0]=型号$varValue[0]=模型值
$varName[1]=位置
$varValue[1]=位置值
$varName[2]=价格
$varValue[2]=price value您不需要将它们分配给任何其他对象,只需
json\u decode()
JSONString,它们就变成了可以按原样使用的PHP对象
$data = json_decode($abcd, true);
foreach($data['Options'] as $index => $value) {
//do whatever you want
}
//or access them directly
$data['Options']['Model']
$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 );
}
我不知道这背后的逻辑是什么 但您可以通过混合使用array_key和array_值来实现这一点,如下所示:
$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.
实例:我说名称各不相同,型号、位置和价格只是一个例子。请参阅更新的建议,绝对没有理由将一个非常好的对象转换为一个数组,以满足您的需求。“它工作得很好。”埃里克莱辛斯基在代码中解释不正确?