dousou2897 2016-01-16 13:02
浏览 50
已采纳

JSON返回2个数组,包含1个元素

I have this function:

public function findFavoriteMerchant($userId) {
  // I grab all the merchant_id from favoriteMerchant where user_id = $userId
  $q = $this->_db->prepare("SELECT * FROM favoriteMerchant WHERE user_id = ?");
  $q->bindParam(1, $userId, PDO::PARAM_INT);


        if ($q->execute()){

        $result = $q->fetchAll(PDO::FETCH_ASSOC);
        $i = -1;

              foreach ($result as $row) {

              $merchant = $this->_db->prepare("SELECT * FROM merchant WHERE merchant_id = ?");
              $merchant->bindParam(1, $row["merchant_id"], PDO::PARAM_INT);

                   if ($merchant->execute()){

                       $i++;

                       $merchantArray[$i] = $merchant->fetchAll(PDO::FETCH_ASSOC);
                    }
               }        
               return $merchantArray;
         }
} 

that return this :

[
  [ 
    {
        "merchant_id": "17",
        "business_name": "Nails Spa",
        "merchant_first_name": "Jonh ",
        "merchant_last_name": "Lampard",
        "merchant_email": "email@me.com",
        "merchant_address": "123 lampard street",
        "merchant_country": "United States",
        "merchant_city": "San Francisco ",
        "merchant_state": "Dubai",
        "merchant_postalCode": "92",
        "merchant_telephone": "043251653",
        "merchant_industry": "Beauty",
        "merchant_type": "Spa",
        "merchant_service": "other",
        "merchant_lat": "37.804512",
        "merchant_long": "-122.432335"
    }
],
[
    {
        "merchant_id": "19",
        "business_name": "Massage Spa",
        "merchant_first_name": "carl",
        "merchant_last_name": "smith",
        "merchant_email": "email@me.com",
        "merchant_address": "",
        "merchant_country": "United States",
        "merchant_city": "San Francisco ",
        "merchant_state": "Dubai",
        "merchant_postalCode": "92",
        "merchant_telephone": "043278439",
        "merchant_industry": "Beauty",
        "merchant_type": "Spa",
        "merchant_service": "other",
        "merchant_lat": "25.037189",
        "merchant_long": "55.251812"
    }
  ]
]

but I would like to get this:

[
    {
        "merchant_id": "17",
        "business_name": "Nails Spa",
        "merchant_first_name": "Jonh ",
        "merchant_last_name": "Lampard",
        "merchant_email": "email@me.com", 
      // and so on....

****UPDATE****

    $merchant =  new Merchant();
    echo json_encode($merchant->findFavoriteMerchant($userId),JSON_PRETTY_PRINT);

print r returns:

    Array
(
    [0] => Array
        (
            [merchant_id] => 17
            [business_name] => Massage Spa
            [merchant_first_name] => Jonh 
            [merchant_last_name] => Lampard
            [merchant_email] => email@me.com
            [merchant_address] => 123 lampard street
            [merchant_country] => United States
            [merchant_city] => San Francisco 
            [merchant_state] => Dubai
            [merchant_postalCode] => 92
            [merchant_telephone] => 043251653
            [merchant_industry] => Beauty
            [merchant_type] => Spa
            [merchant_service] => other
            [merchant_lat] => 37.804512
            [merchant_long] => -122.432335
            [merchant_userName] => Aviation 
            [password] => cfc10a708f01fe27750e3be246ca1daa
        )

)
Array
(
    [0] => Array
        (
            [merchant_id] => 19
            [business_name] => Angsana Spa
            [merchant_first_name] => carl
            [merchant_last_name] => smith
            [merchant_email] => email@me.com
            [merchant_address] => 
            [merchant_country] => United States
            [merchant_city] => San Francisco 
            [merchant_state] => Dubai
            [merchant_postalCode] => 92
            [merchant_telephone] => 043278439
            [merchant_industry] => Beauty
            [merchant_type] => Spa
            [merchant_service] => other
            [merchant_lat] => 25.037189
            [merchant_long] => 55.251812

        )

)

I tried several approaches but I don't get it

  • 写回答

3条回答 默认 最新

  • duanjiao4763 2016-01-16 13:17
    关注

    You need to take the individual elements from the return of fetchAll since it returns an array.

    Use a simple foreach to populate your final array.
    Everything else stays the same, return $merchantArray, json_encode it then print it out.

    $results = $merchant->fetchAll(PDO::FETCH_ASSOC);
    foreach($results as $result){
        $merchantArray[$i] = $result;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 关于大棚监测的pcb板设计
  • ¥15 stm32开发clion时遇到的编译问题
  • ¥15 lna设计 源简并电感型共源放大器
  • ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)