2017-01-15 64 views
0

使用array_search我一直在使用array_search得到数组键名,但它给了我0和1,而不是“登录”或“家”获取关键在多维数组

这是我的代码

$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')) 
+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