2016-11-07 46 views
1

我想我有一個很容易的問題,但我仍然卡住了。我想檢查值是否在數組中,如果是,我想要更改變量值。檢查值是否在數組PHP(容易?)

$admin_is_menu = "about"; 
$test = array(); 
$test = [ 
["Name" => "About","alias" => "about"], 
["Name" => "Test", "alias" => "test"], 
]; 
if(in_array($admin_is_menu, $test)){ 
    $admin_is_menu = "true"; 
} 
echo $admin_is_menu; 

在上面的代碼,應該輸出的回波"true",由於"about"是在數組中。但是不幸的是不起作用。

我在做什麼錯?

+3

'in_array($ admin_is_menu,array_column($測試,'別名'))' – cske

+0

這仍然回聲'「約」' – Saypontigohe

+1

有趣,它回聲'我真的'。 –

回答

1

嘗試array_column以獲取所有數組值。

$admin_is_menu = "about"; 
$test = array(); 
$test = [ 
["Name" => "About","alias" => "about"], 
["Name" => "Test", "alias" => "test"], 
]; 
if(in_array($admin_is_menu, array_column($test,'alias'))){ 
    $admin_is_menu = "true"; 
} 
echo $admin_is_menu; 

DEMO

1

@cske在評論該怎麼辦呢指出。這也是一個小的解釋。您可以使用array_column。在這種情況下array_column($test, "alias")會返回一個新的數組:

array(2) { 
    [0]=> 
    string(5) "about" 
    [1]=> 
    string(4) "test" 
} 

現在,你在它檢查與in_array

in_array($admin_is_menu, array_column($test,'alias')) 

,這將返回true