在Laravel中如何根据指定键提取多维数组的对应值
多维数组提取指定键所有值的实现方法
需求说明
给定一组由多个关联子数组组成的多维常量数组,需要提取所有子数组中指定键(此处为investment_name)对应的值,组成新的一维数组。
示例原数组
const defaultInvestmentFields = [ [ 'type' => 'system', 'investment_name' => 'Ballast' ], [ 'type' => 'system', 'investment_name' => 'Inverters' ], [ 'type' => 'system', 'investment_name' => 'Extra garantie inverters' ] ];
实现方案
方案1:使用内置函数array_column(推荐)
PHP 5.5及以上版本支持array_column函数,专门用于从多维数组中提取指定单列的值,代码最简:
$investmentNames = array_column(defaultInvestmentFields, 'investment_name');
执行后$investmentNames就是预期的输出结果:['Ballast', 'Inverters', 'Extra garantie inverters']
方案2:循环遍历实现(兼容低版本)
如果需要兼容PHP 5.5以下版本,或者需要额外加判断逻辑,可以用遍历实现:
$investmentNames = []; foreach (defaultInvestmentFields as $item) { // 加isset判断避免子数组不存在指定键时报错 if (isset($item['investment_name'])) { $investmentNames[] = $item['investment_name']; } }
内容的提问来源于stack exchange,提问作者Levi Roelofsma
相关产品推荐
相关产品推荐

