使用子值从多维数组获取“主”键

时间:2018-07-01 12:16:58

标签: php arrays

我有以下数组:

$array = array(
    [45] => [
        account_id => 1
        ],
    [75] => [
        account_id => 2
        ]
)

我有以下PHP代码:

$key = array_search(1, array_column($array, 'account_id'));

当我执行var_dump($ key)时,输出为int(0)。但是我需要“ 45”(如果account_id 2为“ 75”)。

该问题的解决方案是什么?

3 个答案:

答案 0 :(得分:1)

您可以使用array_combine()合并值和键。

$array = array(
    45 => [
        'account_id' => 1
        ],
    75 => [
        'account_id' => 2
        ]
);

$key = array_search(1, array_combine( array_keys( $array ), array_column ( $array , 'account_id' ) ) );

这将导致:45

答案 1 :(得分:0)

你可以做

$res=false;$srch=1;
foreach ($array as $key=>$val){
  if ($val['account_id']===$srch) {$res=$key; break;}
}
echo $res;

答案 2 :(得分:0)

您还可以使用array_filter并使用key从结果中获取第一个键:

$array = array_filter($array, function($x) {
    return $x["account_id"] === 1;
});

echo key($array); //45