在多维数组中使用array_search获取密钥

时间:2017-01-15 06:46:10

标签: php arrays web

我必须使用array_search获取数组键名,但它给我0和1而不是“login”或“home”

这是我的代码

  $PAGINATOR = array("login" => array("permission" => false,
                                  "auth"           => false,
                                  "title"          => "Login",
                                  "slug"           => "?id=login",
                                  "layout"         => "pages/login.php",
                                  "default"        => true),
                 "home"  => array("permission"     => false,
                                  "auth"           => true,
                                  "title"          => "Home",
                                  "slug"           => "?id=home",
                                  "layout"        => "pages/home.php",
                                  "default"       => false));

array_search(true, array_column($PAGINATOR, 'default'))

1 个答案:

答案 0 :(得分:1)

array_column仅为仅发送column_key时选择的列提供数字键。你需要一个解决方法:

array_search(true,(array_combine(array_keys($PAGINATOR), array_column($PAGINATOR, 'default'))));

检查EVAL

<强>解释

从单个列返回值后,使用array_keys获取原始数组的键。然后使用array_combine组合键和值。

一步一步:

$a = array_column($PAGINATOR, 'default');

$b = array_keys($PAGINATOR);

$c = array_combine($b,$a);

$d = array_search(true,$c);

print_r($a);
print_r($b);
print_r($c);
print_r($d);

<强>打印

Array
(
    [0] => 1
    [1] => 
)

Array
(
    [0] => login
    [1] => home
)

Array
(
    [login] => 1
    [home] => 
)

login