2016-11-07 49 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