我不确定我是否正确地命名了这个......
我有这个数组:
array (
'fu' => 'bar',
'baz' =>
array (
0 => 'bat',
),
)
我可以使用以下方式搜索:
echo array_search('bar', $myarray);
将返回bar的键,即:
fu
但是如何搜索fu的值?
如果我尝试:
echo array_search('fu', $myarray);
我没有结果。
!!编辑以显示更多代码!!
$data = '{fu:"bar",baz:["bat"]}';
$parsed = array();
parse_jsobj($data, $parsed);
现在如果我使用:
var_export($parsed);
我明白了:
array (
'fu' => 'bar',
'baz' =>
array (
0 => 'bat',
),
)
如果我改用它:
print_r($parsed);
我明白了:
Array ( [fu] => bar [baz] => Array ( [0] => bat ) )
我试图像这样回复fu的价值:
echo array_search('fu', $parsed);
但我没有结果。
如果我尝试,就像明智一样:
echo $parsed['fu'];
echo $parsed[0]->fu;
echo $parsed[0];
此功能似乎只返回Key并且不会返回Value。也许我正在寻找不同的功能?
我使用的课程是HERE
答案 0 :(得分:1)
echo $myarray[array_search('bar', $myarray)];
我不知道你为什么要这样做,因为你已经知道了fu的结果。我认为你更有可能想要这样做:
echo $myarray['fu'];
编辑: 离开上面为后代。在使用更多信息进行编辑之后,希望这将有效:
$parsed2 = $parsed;
$parsed = array();
foreach($parsed2 as $key=>$value){
if(is_string($key) || is_numeric($key)) {
$parsed[$key] = $value;
} else {
$parsed["'".$key."'"] = $value;
}
}
unset($parsed2);
echo $parsed['fu'];
如果这不起作用,那么我就没有更多的想法了。