【问题标题】:How to refer to internal array in bson/json object?如何在 bson/json 对象中引用内部数组?
【发布时间】:2017-10-08 16:02:51
【问题描述】:

我有 bson/json 数据作为输出输出

         {"waitedMS":0,"result":[{"_id":{"$id":"58131c7799fbad4c1d000205"},"fullname":"Deborah Cheryl Fox","firstmiddle":"Deborah Cheryl","firstlast":"Deborah Fox","student":{"_id":{"$id":"58131c7799fbad4c1d000205"},"student_id":5,"registration_temp_perm_no":"4","roll_no":4,"admission_date":"01\/07\/2016","first_name":"Deborah","middle_name":"Cheryl","last_name":"Fox","dob":"14\/09\/2000","gender":"Male","blood_group":"A+","birth_place":"R S","nationality":"Indian","language":"English","religion":"Agnostic","address_line1":"30933 Anderson Way","address_line2":"97 Lotheville Road","city":"R S","state":"Gujarat","pincode":"India","country":"India","phone1":"919039180422","phone2":"917681559405","email":"educianstudent@gmail.com","is_sms_enabled":"Yes","is_active":1,"has_finished":0,"student_category":"5","course":"58131c7099fbad4c1d0001c2","Biometric_ID":"4","siblings":"Cheryl Fox","guardian_name":"Cheryl Fox","guardian_occupation":"Data Coordiator","guardian_qualification":"Senior Quality Engineer","guardian_email_id":"educianparent@gmail.com","gaurdain_contact_details":"914519201577","guardian_relationship":"sapien","height":"4.4","weight":"44.8","allergies":"","batch":2,"academicyear":"2015","batchhistory":[{"batchid":2,"academic_year":"2015","course":"58131c7099fbad4c1d0001c2","sequenceno":1,"courseId":{"$id":"58131c7099fbad4c1d0001c2"}},{"batchid":3,"academic_year":"2016","course":"58131c7099fbad4c1d0001c2","sequenceno":2,"courseId":{"$id":"58131c7099fbad4c1d0001c2"}}],"uploads":{"profile_pic":"58131c7799fbad4c1d00020510.jpg"},"routearray":[{"routeid":2,"academicyear":"2016","current":1,"vehicleno":"JK01S8764","dateofassignment":"10\/30\/2016"}],"HostelAlloted":{"Food Preferences":"Both","Hostel":{"$id":"581647da99fbad9421000029"},"Floor":"Floor_1","RoomNumber":1,"Approved":"yes","Approved On":{"sec":1477852200,"usec":0},"Academic Year":"2016"},"HostelAllotmentHistory":[{"Food Preferences":"Both","Hostel":{"$id":"581647da99fbad9421000029"},"Floor":"Floor_1","RoomNumber":1,"Approved":"yes","Approved On":{"sec":1477852200,"usec":0},"Academic Year":"2016"}],"created_at":null,"updated_at":"","courseId":{"$id":"58131c7099fbad4c1d0001c2"}}}....
          ....
         ],"ok":1}

写完这个$cursor = $output["result"]; 我只能获取如下结果

        [{"_id":{"$id":"58131c7799fbad4c1d000205"},"fullname":"Deborah Cheryl Fox","firstmiddle":"Deborah Cheryl","firstlast":"Deborah Fox","student":{"_id":{"$id":"58131c7799fbad4c1d000205"},"student_id":5,"registration_temp_perm_no":"4","roll_no":4,"admission_date":"01\/07\/2016","first_name":"Deborah","middle_name":"Cheryl","last_name":"Fox","dob":"14\/09\/2000","gender":"Male","blood_group":"A+","birth_place":"R S","nationality":"Indian","language":"English","religion":"Agnostic","address_line1":"30933 Anderson Way","address_line2":"97 Lotheville Road","city":"R S","state":"Gujarat","pincode":"India","country":"India","phone1":"919039180422","phone2":"917681559405","email":"educianstudent@gmail.com","is_sms_enabled":"Yes","is_active":1,"has_finished":0,"student_category":"5","course":"58131c7099fbad4c1d0001c2","Biometric_ID":"4","siblings":"Cheryl Fox","guardian_name":"Cheryl Fox","guardian_occupation":"Data Coordiator","guardian_qualification":"Senior Quality Engineer","guardian_email_id":"educianparent@gmail.com","gaurdain_contact_details":"914519201577","guardian_relationship":"sapien","height":"4.4","weight":"44.8","allergies":"","batch":2,"academicyear":"2015","batchhistory":[{"batchid":2,"academic_year":"2015","course":"58131c7099fbad4c1d0001c2","sequenceno":1,"courseId":{"$id":"58131c7099fbad4c1d0001c2"}},{"batchid":3,"academic_year":"2016","course":"58131c7099fbad4c1d0001c2","sequenceno":2,"courseId":{"$id":"58131c7099fbad4c1d0001c2"}}],"uploads":{"profile_pic":"58131c7799fbad4c1d00020510.jpg"},"routearray":[{"routeid":2,"academicyear":"2016","current":1,"vehicleno":"JK01S8764","dateofassignment":"10\/30\/2016"}],"HostelAlloted":{"Food Preferences":"Both","Hostel":{"$id":"581647da99fbad9421000029"},"Floor":"Floor_1","RoomNumber":1,"Approved":"yes","Approved On":{"sec":1477852200,"usec":0},"Academic Year":"2016"},"HostelAllotmentHistory":[{"Food Preferences":"Both","Hostel":{"$id":"581647da99fbad9421000029"},"Floor":"Floor_1","RoomNumber":1,"Approved":"yes","Approved On":{"sec":1477852200,"usec":0},"Academic Year":"2016"}],"created_at":null,"updated_at":"","courseId":{"$id":"58131c7099fbad4c1d0001c2"}}},
    ....
    ....

现在我只想在光标中获取学生数组。我已经写了 $cursor = $output["result"]["student"].

它抛出错误“未定义的索引错误消息”。

【问题讨论】:

标签: php json php-5.5 php4


【解决方案1】:

试试这个

$cursor = $output["result"][0]['student'];

$students = array_map(function($v){return $v['student'];}, $output["result"]);

【讨论】:

  • 感谢您的回答,但它会抛出错误 json_decode() Expects parameter 1 to be string, array given i
  • @user2179026 立即检查。如果不工作显示 print_r($output["result"]);.
  • 它只适用于一名学生。是否可以为所有学生的json对象提取“学生”
  • 我加了,检查一下。
  • 出色的解决方案...很棒
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-21
  • 1970-01-01
  • 1970-01-01
  • 2018-10-09
  • 2023-02-20
  • 2018-03-06
相关资源
最近更新 更多