You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP如何将多维数组转换为一维数组 PDO查询场景实例

问题原因

代码处理包含换行符的字符串时,直接将explode()返回的数组作为单个元素追加到结果数组中,最终生成了多维嵌套结构。

修复方案

方案1:兼容所有PHP版本

修改原有循环逻辑,将拆分后的元素逐个追加到结果数组:

<?php

$dataResult = array("abcdef", "People 1 - 123-456-7890
People 2 - 
People 3 - Abcdef Jack
People 4 _ Defjkl Smack ");

$dataResultArray = [];
foreach($dataResult as $result){
    if(strstr($result, PHP_EOL)){
        foreach(explode(PHP_EOL, $result) as $item) {
            $dataResultArray[] = $item;
        }
    } else {
        $dataResultArray[] = $result;
    }
}

// 输出验证
foreach ($dataResultArray as $value) {
    echo $value . PHP_EOL;
}

方案2:PHP 7.4+ 简化写法

使用数组展开运算符简化追加逻辑:

foreach($dataResult as $result){
    if(strstr($result, PHP_EOL)){
        array_push($dataResultArray, ...explode(PHP_EOL, $result));
    } else {
        $dataResultArray[] = $result;
    }
}

通用多层嵌套扁平化方案

如果后续会出现更深层级的嵌套数组,可以使用通用扁平化方法处理:

function flatten(array $targetArray): array {
    $flatResult = [];
    array_walk_recursive($targetArray, function($item) use (&$flatResult) {
        $flatResult[] = $item;
    });
    return $flatResult;
}

// 原有逻辑生成多维数组后,调用该方法即可得到一维数组
$finalResult = flatten($dataResultArray);

内容的提问来源于stack exchange,提问作者Paul Brown

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 22:45:03