我想我有一个非常简单的问题,但无论如何我都被困住了。我想检查值是否在数组中,如果是,我想更改变量值。
$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;
在上面的代码中,它应该输出echo "true"
,因为"about"
在数组中。但遗憾的是不行。
我做错了什么?
答案 0 :(得分: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;
答案 1 :(得分: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