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

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

PHP 操作數組問題

PHP 操作數組問題

PHP
慕妹3242003 2019-03-09 22:19:19
<?php //////當前查詢出來的數據 $redata = array( 0=>['id'=>1,'name'=>'張三','age'=>22,'hobby'=>'學習'], 1=>['id'=>1,'name'=>'張三','age'=>22,'hobby'=>'騎行'], 2=>['id'=>2,'name'=>'李四','age'=>20,'hobby'=>'旅游'], ); //怎么樣才能轉換成下面這種形式的? 寫了一上午 愣是沒寫出來 $arr = array( 0=>[ 'id'=>1,'name'=>'張三','age'=>22,'hobby'=> ['學習', '騎行'] ], 1=>[ 'id'=>2,'name'=>'李四','age'=>20,'hobby'=> ['旅游'] ] );
查看完整描述

5 回答

?
慕的地8271018

TA貢獻1796條經驗 獲得超4個贊

$arr = [];
foreach($redata as $k=>$row){
    foreach($row as $key => $item){
        if($key === 'hobby'){
            $arr[$row['id']][$key][] = $item; 
        }else{
            $arr[$row['id']][$key] = $item; 
        }
        
        
    }
}

var_dump($arr);
查看完整回答
反對 回復 2019-03-18
?
搖曳的薔薇

TA貢獻1793條經驗 獲得超6個贊

$arr = [];
foreach($redata as $v){
    $arr[$v['id']]['id'] = $v['id'];
    $arr[$v['id']]['name'] = $v['name'];
    $arr[$v['id']]['age'] = $v['age'];
    $arr[$v['id']]['hobby'][] = $v['hobby'];
}
$idMap = array_column($arr,'id');
array_multisort($arr,SORT_ASC,$idMap);
var_dump($arr);

數組字段是固定的話 省去 if 判斷的時間

查看完整回答
反對 回復 2019-03-18
?
不負相思意

TA貢獻1777條經驗 獲得超10個贊

https://img1.sycdn.imooc.com//5c8f3d6d0001233608000332.jpg

https://img1.sycdn.imooc.com//5c8f3d6f0001701104300459.jpg
代碼
`
$redata = array(

0=>['id'=>1,'name'=>'張三','age'=>22,'hobby'=>'學習'],
1=>['id'=>1,'name'=>'張三','age'=>22,'hobby'=>'騎行'],
2=>['id'=>2,'name'=>'李四','age'=>20,'hobby'=>'旅游'],

);

function hebing($redata){

foreach ($redata as $k => $v) {
    if($redata[$k]['id']==$redata[$k+1]['id']){
        $redata[$k+1]['hobby'] = [$redata[$k]['hobby'],$redata[$k+1]['hobby']];
        array_splice($redata, $k, 1);
    }
}
return $redata;

}
var_dump(hebing($redata));
`

查看完整回答
反對 回復 2019-03-18
?
qq_笑_17

TA貢獻1818條經驗 獲得超7個贊

一個foreach還是好理解吧.

function hobby_merge($redata)
{
    $result = [];
    foreach($redata as $item) {
        if (!isset($result[$item['id']])) {
            $item['hobby'] = (array) $item['hobby'];
            $result[$item['id']] = $item;
            continue;
        }
        $result[$item['id']]['hobby'][] = $item['hobby'];
    }
    return array_values($result);
}
查看完整回答
反對 回復 2019-03-18
  • 5 回答
  • 0 關注
  • 539 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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