【发布时间】:2016-02-02 01:49:56
【问题描述】:
我不确定我的标题是否正确...
我有这个数组:
array (
'fu' => 'bar',
'baz' =>
array (
0 => 'bat',
),
)
我可以使用:
echo array_search('bar', $myarray);
这将返回bar的key,即:
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
【问题讨论】:
-
{fu:"bar",baz:["bat"]}你确定这是 json 字符串吗?它无效,fu和baz缺少引号 -
@Ghost 这就是他使用链接类的原因;它应该解析无效的json。
-
@RichardTheobald 如果您已经拥有该类生成的最终数组,应该相当简单,只需将其视为普通数组即可
-
@Ghost 他有最终的数组,但不幸的是它是一个无效的命名数组。见他发布的
print_r; fu 或 baz 周围没有引号,因此不能按名称调用。