繁体   English   中英

如何合并从数据库中获取的 arrays 数组?

[英]How can I merge array of arrays fetched from database?

我从数据库中获取用户获得的所有代码,它们返回为 arrays 的 arrays。我如何合并它们,以便代码按顺序排列在一维数组中? 不幸的是,我无法更改程序的查询:

代码:

function loadGlobalPermissions(){
    global $pdo;
    $user_id = $_SESSION['id'];
    $sql="CALL skaj_listp(:user_id)";
    $statement = $pdo->prepare($sql);
    $statement->bindParam(':user_id',$user_id,PDO::PARAM_STR);
     if($statement->execute()){
          $response[] = $statement->fetchALL(PDO::FETCH_ASSOC);
        }
        return $response;
}

大批:

array(1) { [0]=> array(1) { [0]=> array(28) { [0]=> array(1) { ["kod"]=> string(2) "DR" } [1]=> array(1) { ["kod"]=> string(3) "DRW" } [2]=> array(1) { ["kod"]=> string(2) "ER" } [3]=> array(1) { ["kod"]=> string(4) "ERDD" } [4]=> array(1) { ["kod"]=> string(5) "ERDSP" } [5]=> array(1) { ["kod"]=> string(4) "ERED" } [6]=> array(1) { ["kod"]=> string(5) "EREFP" } [7]=> array(1) { ["kod"]=> string(4) "EREM" } [8]=> array(1) { ["kod"]=> string(5) "EREMA" } [9]=> array(1) { ["kod"]=> string(4) "EREO" } [10]=> array(1) { ["kod"]=> string(4) "EREP" } [11]=> array(1) { ["kod"]=> string(4) "ERES" } [12]=> array(1) { ["kod"]=> string(4) "ERET" } [13]=> array(1) { ["kod"]=> string(4) "EREU" } [14]=> array(1) { ["kod"]=> string(5) "EREWM" } [15]=> array(1) { ["kod"]=> string(4) "ERUD" } [16]=> array(1) { ["kod"]=> string(5) "ERUSP" } [17]=> array(1) { ["kod"]=> string(2) "EU" } [18]=> array(1) { ["kod"]=> string(3) "EUS" } [19]=> array(1) { ["kod"]=> string(6) "EUSEUP" } [20]=> array(1) { ["kod"]=> string(3) "EWR" } [21]=> array(1) { ["kod"]=> string(3) "LRW" } [22]=> array(1) { ["kod"]=> string(5) "LUDDG" } [23]=> array(1) { ["kod"]=> string(5) "LUUZG" } [24]=> array(1) { ["kod"]=> string(3) "LUW" } [25]=> array(1) { ["kod"]=> string(2) "UR" } [26]=> array(1) { ["kod"]=> string(2) "UW" } [27]=> array(1) { ["kod"]=> string(3) "WPA" } } } } string(4) 

这是我为您编写的 function 合并任意深度的多维数组并返回一维数组。 用它来合并你的多维数组:

function mergeMultidimensionalArray($array, $merged = [], $depth = 0)
{
    foreach($array as $key => $value) {
        if(is_array($value)) {
            $merged = mergeMultidimensionalArray($value, $merged, ++$depth);
        } else {
            if(isset($merged[$key])) {
                $merged[$key . $depth] = $value;
            } else {
                $merged[$key] = $value;
            } 
        }
    }
    return $merged;
}

$merged = mergeMultidimensionalArray($response);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM