2015-09-04 35 views
1

我有以下陣列哈希::檢查方法不能在電子郵件鍵返回true

$array = [ 
    'top' => [ 
     'under' => [ 
      'emails' => 
       [ 
        '[email protected]' => [ 
         'key' => 'value', 
        ], 
        'other' => [ 
         'key' => 'value', 
        ] 
       ], 
     ], 
    ], 
]; 

然後我執行以下命令

$tmp = Hash::check($array, '[email protected]'); 

這將返回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.[[email protected]]'); 
var_dump($tmp); //false 
$tmp = Hash::check($array, '[email protected]'); 
var_dump($tmp); //false 
$tmp = Hash::check($array, '[email protected]'); 
var_dump($tmp); //false 
+0

不要你需要即'$ TMP =哈希::檢查字符串指標($數組,'{s}[email protected]');' – RiggsFolly

+0

不,我不知道。如果我做了,那麼''tmp = Hash :: check($ array,'top.under.emails.test');''不會返回'true''。 – gmponos

+0

你試過'$ tmp = Hash :: check($ array,'[email protected]');'? – aldrin27

回答

1

周圍使用電子郵件鍵方括號匹配特定的鍵: -

Hash::check($array, 'top.under.emails[[email protected]]'); 
+0

不,它不起作用 – gmponos

+0

奇怪的是,這對我的數組適用。 – drmonkeyninja

+0

哦,你不是放點。這就是爲什麼......讓我測試它。 – gmponos