我有以下数组
$array = [
'top' => [
'under' => [
'emails' =>
[
'test@email.com' => [
'key' => 'value',
],
'other' => [
'key' => 'value',
]
],
],
],
];
然后我执行以下命令
$tmp = Hash::check($array, 'top.under.emails.test@email.com');
这会返回false
如果我将电子邮件值更改为test
,然后执行以下行:
$tmp = Hash::check($array, 'top.under.emails.test');
返回true
。所以我猜这是一个问题,因为@
字符...有没有办法解决这个问题?
汇总:
$tmp = Hash::check($array, 'top.under.emails.other');
var_dump($tmp); //true
$tmp = Hash::check($array, 'top.under.emails.[test@email.com]');
var_dump($tmp); //false
$tmp = Hash::check($array, 'top.under.emails.test@email.com');
var_dump($tmp); //false
$tmp = Hash::check($array, 'top.under.emails.test@email.com.key');
var_dump($tmp); //false
答案 0 :(得分:1)
使用电子邮件密钥周围的方括号来匹配特定密钥: -
Hash::check($array, 'top.under.emails[test@email.com]');