[{"name":"se","value":"test1"},{"name":"model","value":"test2"},{"name":"filter_preference","value":"test3"},{"name":"seved","value":"test4"}]
我有json,我想解析它,并获得“segment”=> “测试1” 等等。
我已经完成了这个
$json2= json_encode($loadFilter);
$json2 = json_decode($json2, true);
foreach ($json2->$key as $value)
{
echo $key ."=>".$value;
}
总是获得为foreach()提供的无效参数!!!
我正在做WP ajax回调。
答案 0 :(得分:3)
访问$ key时,您的foreach语法错误。
foreach ($json2 as $key => $value) {
echo $key ."=>".$value;
}
根据您的评论进行修改:
你没有给出真实的"在您的问题格式中,您的数组包含在' filter_preference'中,因此您必须迭代$ json2 [' filter_preference']。
foreach ($json2['filter_preference'] as $key => $value) {
echo $key ."=>".$value;
}
答案 1 :(得分:1)
您需要映射子数组的键值。 试试这个:
foreach ($json2 as $key=>$value)
{
echo $key ."=>".$value;
}
答案 2 :(得分:0)
这里有一个奇怪的建议:
如果要为此使用数组,则可以使用以下代码将对象转换为数组:
function objectToArray($d) {
if (is_object($d)) {
// Gets the properties of the given object
// with get_object_vars function
$d = get_object_vars($d);
}
if (is_array($d)) {
/*
* Return array converted to object
* Using __FUNCTION__ (Magic constant)
* for recursive call
*/
return array_map(__FUNCTION__, $d);
}
else {
// Return array
return $d;
}
}
$array_new = objectToArray($json2);
http://wonderphp.wordpress.com/2014/03/20/convert-object-to-array-and-vice-versa/