PHP遍历数组提取[0]位置元素或非数组元素的方法
提取PHP数组中所有[0]位置元素的简便方法
嘿,我来帮你搞定这个问题!其实不用纠结复杂的递归,根据你的数组结构,有两种非常简便的解决方案:
情况1:二维数组(每个元素都是带[0]索引的子数组)
这是最常见的场景,直接用PHP内置的array_column()函数就能一步到位,完全不用写循环或者递归,代码简洁又高效。
举个例子,假设你的原数组是这样的:
$originalArray = [ ['ccrs_date', '2024-01-01'], ['prelim_title_report_date', '2024-02-01'], ['additional_escrow_deposi...', '1000'] ];
只需要一行代码就能得到你想要的结果:
$targetArray = array_column($originalArray, 0);
执行后$targetArray就是你需要的:
Array ( [0] => ccrs_date [1] => prelim_title_report_date [2] => additional_escrow_deposi... )
情况2:多层嵌套的递归数组
如果你的数组是多层嵌套的(比如子数组里还有子数组,需要提取所有层级里的[0]元素),那可以写一个简单的递归函数,比你之前尝试的更稳定:
function extractAllZeroIndexItems($array) { $result = []; foreach ($array as $item) { if (is_array($item)) { // 先递归处理子数组,把结果合并进来 $result = array_merge($result, extractAllZeroIndexItems($item)); // 如果当前子数组本身有[0]索引,就把它加入结果 if (isset($item[0])) { $result[] = $item[0]; } } } // 可选:如果需要去重,加上这行 $result = array_unique($result); return $result; }
调用的时候直接传你的嵌套数组就行:
$targetArray = extractAllZeroIndexItems($yourNestedArray);
小提示:如果不确定自己的数组结构,可以先执行var_dump($originalArray)打印出来,这样能更精准地选择对应的方法~
内容的提问来源于stack exchange,提问作者LargeTuna
相关产品推荐
相关产品推荐

