ホームページ >バックエンド開発 >PHPチュートリアル >我想把PHP的两个数组放到一起,请大神指教

我想把PHP的两个数组放到一起,请大神指教

WBOY
WBOYオリジナル
2016-06-06 20:24:071218ブラウズ

**问题:我想从数据库中查询每个会员发布的两条信息,并以数组形式封装

<code>                $userlist里面是查询出来的所有用户。
                
                 $listinfo里面是查询出来的这个用户发布的两条数据。
                 我想以这样的形式封装
             一个用户是一个数组,然后用户这个数组里面包含了一个数组,这个数组里面是这个用户发布的两条信息:
            大数组{
                用户数组{
                      用户产品数组{
                              用户产品数组1{}
                              用户产品数组2{}              
                                  }                  
                 }
                                 
            }**
         
</code>

// 查询会员信息

<code>    $accompanyinfo = $this->db
                 ->from($this->db->dbprefix('member').' AS m2')
                 ->join($this->db->dbprefix('member_data').' AS a', 'a.uid=m2.uid', 'left')
                 ->where('a.service', '')
                 ->where('a.uid',1)
                 ->limit($start,$limit)
                 ->get()
                 ->result_array();
                 $userlist=array();//用户
                 $listinfo=array();//产品
         
    foreach ($accompanyinfo as  $t) {
            $a['uid'] = $t['uid'];
            $a['name']=$t['name'];
            $a['sex']=$t['sex'];
            $a['age']=$t['age'];
            $a['status'] = unserialize(stripslashes($t['status']));
            $a['service'] = unserialize(stripslashes($t['service']));
            $a['tx']=SYS_ATTACHMENT_URL.'member/'.$t['uid'].'/'.$t['txdz'].'.jpg';
            $a['hobby'] = $t['hobby'];
            $a['contact'] = $t['contact'];
            $a['abstract'] = $t['abstract'];
            $a['seat']=dr_linkagepos('address',$t['seat'],'', NULL);
            //查询两条产品
        $list = $this->db
                 ->where('uid', $a['uid'])
                 ->where('catid',1)
                 ->limit(2)
                 ->order_by('inputtime DESC')
                 ->get('dr_1_accompany')
                 ->result_array();
      
        foreach ($list as $s) {
           $b['id']=$s['id'];//信息ID
           $b['uid']=$s['uid'];//发布人ID
           $b['catid']=$s['catid'];//栏目ID
           $b['title']=$s['title'];//标题
           $b['fuwudidian']=dr_linkagepos('address',$s['fuwudidian'],'-', NULL);//服务地点
           $b['peihuxingshi']=$s['peihuxingshi'];//陪护形式
           $b['chujia']=$s['chujia'];//出价
           $b['tese'] = unserialize(stripslashes($s['tese']));//特色
           $b['teshufuwu']=$s['teshufuwu'];//特殊服务
           $listinfo[] = $b;
        }
         
         $userlist[] = $a;
    }</code>

回复内容:

**问题:我想从数据库中查询每个会员发布的两条信息,并以数组形式封装

<code>                $userlist里面是查询出来的所有用户。
                
                 $listinfo里面是查询出来的这个用户发布的两条数据。
                 我想以这样的形式封装
             一个用户是一个数组,然后用户这个数组里面包含了一个数组,这个数组里面是这个用户发布的两条信息:
            大数组{
                用户数组{
                      用户产品数组{
                              用户产品数组1{}
                              用户产品数组2{}              
                                  }                  
                 }
                                 
            }**
         
</code>

// 查询会员信息

<code>    $accompanyinfo = $this->db
                 ->from($this->db->dbprefix('member').' AS m2')
                 ->join($this->db->dbprefix('member_data').' AS a', 'a.uid=m2.uid', 'left')
                 ->where('a.service', '')
                 ->where('a.uid',1)
                 ->limit($start,$limit)
                 ->get()
                 ->result_array();
                 $userlist=array();//用户
                 $listinfo=array();//产品
         
    foreach ($accompanyinfo as  $t) {
            $a['uid'] = $t['uid'];
            $a['name']=$t['name'];
            $a['sex']=$t['sex'];
            $a['age']=$t['age'];
            $a['status'] = unserialize(stripslashes($t['status']));
            $a['service'] = unserialize(stripslashes($t['service']));
            $a['tx']=SYS_ATTACHMENT_URL.'member/'.$t['uid'].'/'.$t['txdz'].'.jpg';
            $a['hobby'] = $t['hobby'];
            $a['contact'] = $t['contact'];
            $a['abstract'] = $t['abstract'];
            $a['seat']=dr_linkagepos('address',$t['seat'],'', NULL);
            //查询两条产品
        $list = $this->db
                 ->where('uid', $a['uid'])
                 ->where('catid',1)
                 ->limit(2)
                 ->order_by('inputtime DESC')
                 ->get('dr_1_accompany')
                 ->result_array();
      
        foreach ($list as $s) {
           $b['id']=$s['id'];//信息ID
           $b['uid']=$s['uid'];//发布人ID
           $b['catid']=$s['catid'];//栏目ID
           $b['title']=$s['title'];//标题
           $b['fuwudidian']=dr_linkagepos('address',$s['fuwudidian'],'-', NULL);//服务地点
           $b['peihuxingshi']=$s['peihuxingshi'];//陪护形式
           $b['chujia']=$s['chujia'];//出价
           $b['tese'] = unserialize(stripslashes($s['tese']));//特色
           $b['teshufuwu']=$s['teshufuwu'];//特殊服务
           $listinfo[] = $b;
        }
         
         $userlist[] = $a;
    }</code>

稍微改动一下就好了

<code>$accompanyinfo = $this->db
                 ->from($this->db->dbprefix('member').' AS m2')
                 ->join($this->db->dbprefix('member_data').' AS a', 'a.uid=m2.uid', 'left')
                 ->where('a.service', '')
                 ->where('a.uid',1)
                 ->limit($start,$limit)
                 ->get()
                 ->result_array();         
$userlist=array();             
     
foreach ($accompanyinfo as  $t) {
    $a['uid'] = $t['uid'];
    $a['name']=$t['name'];
    $a['sex']=$t['sex'];
    $a['age']=$t['age'];
    $a['status'] = unserialize(stripslashes($t['status']));
    $a['service'] = unserialize(stripslashes($t['service']));
    $a['tx']=SYS_ATTACHMENT_URL.'member/'.$t['uid'].'/'.$t['txdz'].'.jpg';
    $a['hobby'] = $t['hobby'];
    $a['contact'] = $t['contact'];
    $a['abstract'] = $t['abstract'];
    $a['seat']=dr_linkagepos('address',$t['seat'],'', NULL);
    //查询两条产品
    $list = $this->db
             ->where('uid', $a['uid'])
             ->where('catid',1)
             ->limit(2)
             ->order_by('inputtime DESC')
             ->get('dr_1_accompany')
             ->result_array();
    $listinfo = array(); //在这里要初始化
    foreach ($list as $s) {
            $b['id']=$s['id'];//信息ID
            $b['uid']=$s['uid'];//发布人ID
            $b['catid']=$s['catid'];//栏目ID
            $b['title']=$s['title'];//标题
            $b['fuwudidian']=dr_linkagepos('address',$s['fuwudidian'],'-', NULL);//服务地点
            $b['peihuxingshi']=$s['peihuxingshi'];//陪护形式
            $b['chujia']=$s['chujia'];//出价
            $b['tese'] = unserialize(stripslashes($s['tese']));//特色
            $b['teshufuwu']=$s['teshufuwu'];//特殊服务
            $listinfo[] = $b;
        }
    $a['listinfo'] = $listinfo; //
    $userlist[] = $a;
}</code>

试试 $a['listinfo'] = $listinfo;
没仔细看,理解的$a是当前用户的个人资料,$listinfo是当前用户发布信息的数组

你可以在循环$userinfo的时候获取用户发布信息,然后把获取的信息追加到数组的一个自定义项中,foreach($userinfo as $key=> $a){

<code>  $b = "用户发布的信息";
 $userinfo[$key]["message"] = $b;</code>

}
手机打字回复,有错别字莫见怪

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。