搜索密钥对数组返回值而不是密钥PHP

时间:2016-02-02 01:49:56

标签: php arrays search

我不确定我是否正确地命名了这个......

我有这个数组:

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

1 个答案:

答案 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'];

如果这不起作用,那么我就没有更多的想法了。