亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為某些屬性創建多維數組

為某些屬性創建多維數組

PHP
呼喚遠方 2021-12-24 15:27:41
我有這個數組結構。ID 145 是一個請求,它與另一個表有兩個關聯關系 - 項目 ID 16 和 17。因此,一個請求可以有多個項目?,F在我想改變這個結構并合并重復的信息。我的意思是,合并[0]和[n]。So funding_project_nameandrelation_id將成為新子數組的兩個條目。[145] => Array(    [0] => Array        (          [firstname] => John          [institution] => Harvard          [funding_project_name] => Project 1 #add to array funding_project_name - [0]          [relation_id] => 16                 #add to array relation_id  - [0]        )    [1] => Array        (          [firstname] => John //discard          [institution] => Harvard //discard          [funding_project_name] => Project 2 #add to array funding_project_name - [1]          [relation_id] => 17                 #add to array relation_id  - [1]        ) )我使用以下方法實現了此輸出:$query->fetchAll(PDO::FETCH_GROUP|PDO::FETCH_ASSOC)知道如何獲得預期的結構嗎?已經嘗試了一些嵌套的 foreach,但不確定如何對項目進行分組預期的:[145] => Array    (      [firstname] => John      [institution] => Harvard      [projects] => Array(          [0] => Array(              [funding_project_name] => Project 1              [relation_id] => 16                     )          [1] => Array(               [funding_project_name] => Project 2               [relation_id] => 17          )      )    )
查看完整描述

1 回答

?
拉風的咖菲貓

TA貢獻1995條經驗 獲得超2個贊

如果只有 2 個字段發生變化,那么您可以循環所有鍵并收集數據 - 稍后根據需要查找唯一性并轉換為字符串:


$array = array_map(function ($arr) {

    foreach(array_keys($arr[0]) as $k) {

        $vals = array_column($arr, $k);

        $e[$k] = count(array_unique($vals)) == 1 ? $vals[0] : $vals;

    }

    return $e;

}, $array);

現場示例:3v4l


如果您愿意 - 這是較舊的代碼版本:


$array = array_map(function ($arr) {

    $a = array('first' => $arr[0]['first'], 'last' => $arr[0]['last']);

    foreach($arr as $e) {

        $a['funding_project_name'][] = $e['funding_project_name'];

        $a['relation_id'][] = $e['relation_id'];

    }

    return $a;}, $array);


查看完整回答
反對 回復 2021-12-24
  • 1 回答
  • 0 關注
  • 125 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號