首页 > 解决方案 > PHP - 如何从嵌套数组中的值中获取“上”键?

问题描述

$arrayTypesAndSubtypes = Account::getTypesAndSubtypes();
$subtype = $request->input('subtype');

这是一个dd$arrayTypesAndSubtypes我想从中获取给定值的上(?)键” 。

array:2 [▼
  "REVENUE" => array:1 [▼
    0 => "REVENUE"
  ]
  "ASSET" => array:1 [▼
    0 => "BANK_ACCOUNT"
  ]
]

在这里,以下返回 false (因为Array_search()将为REVENUEBANK_ACCOUNT返回0;但是,我正在寻找的是返回REVENUEASSET(我称之为“上键” -是否有更合适的术语?)。

任何帮助,将不胜感激!

标签: php

解决方案


假设它们在0键中,只需提取该列,结合当前键并搜索:

$key = array_search('BANK_ACCOUNT', array_combine(array_keys($array), 
                                                  array_column($array, 0)));

var_dump(key);  //should return ASSET

或者,如果每个键下有多个,则循环:

$key = false;
foreach($array as $key => $values) {
    if(array_search('BANK_ACCOUNT', $values)) { // or in_array('BANK_ACCOUNT', $values)
        break;
    }
}

var_dump($key);  //should return ASSET

推荐阅读