检查值是否在PHP数组中(简单?)

时间:2016-11-07 12:46:53

标签: php arrays

我想我有一个非常简单的问题,但无论如何我都被困住了。我想检查值是否在数组中,如果是,我想更改变量值。

$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"在数组中。但遗憾的是不行。

我做错了什么?

2 个答案:

答案 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;

DEMO

答案 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