2017-08-29 226 views
1

将一个对象推入另一个对象时出现错误。但第二个对象是一个数组,并且在数组内部有一个对象。我怎样才能解决这个问题,因为我想补充一点,到我的对象将数组对象推入另一个数组对象中php

我的目标就是这样的

我想添加的对象2Object1

Objet1

stdClass Object 
(
    [id_laporan_pemeriksa] => 5 
    [no_pkpt] => SNE 
    [tgl_pkpt] => 2010 
    [no_penugasan] => ST-4000/PW25/2/2017 
    [tgl_penugasan] => 2017-08-09 
    [judul_laporan] => Masukkan Kode disini 
    [no_laporan] => LBINA-9000/PW25/2/2017 
    [tgl_laporan] => 2017-08-01 
    [tahun_anggaran_penugasan] => 2009 
    [nilai_anggaran_penugasan] => 10000000 
    [realisasi_anggaran_penugasan] => 100000000 
    [jenis_anggaran_penugasan] => Utang 
    [sumber_laporan] => Inspektorat Maluku 
    [nama_sumber_penugasan] => PKPT 
    [nama_ketua_tim] => Abdul Rofiek, Ak. 
    [nama_pengendali_teknis] => Alfian Massagony, S.E. 
    [nama_unit_penugasan] => Irban Wil. I 
    [nama_penugasan] => Penjaminan 
    [nama_sub_penugasan] => Audit 
    [id_s_sub_penugasan] => 010105 
    [nama_s_sub_penugasan] => Audit atas hal-hal lain di bidang kepegawaian. 
) 

Object2

stdClass Object 
(
    [id] => 3 
    [data_sebab] => Array 
     (
      [0] => stdClass Object 
       (
        [id] => 4 
        [data_rekomendasi] => Array 
         (
          [0] => stdClass Object 
           (
            [id] => 4 

            [data_tindak_lanjut] => Array 
             (
              [0] => stdClass Object 
               (
                [id] => 9 

                [tgl_tindak_lanjut] => 0000-00-00 
               ) 

             ) 

           ) 

          [1] => stdClass Object 
           (
            [id] => 5 
            [id_rekomendasi] => 
            [data_tindak_lanjut] => Array 
             (
              [0] => stdClass Object 
               (
                [id] => 10 
                [id_tindak_lanjut] => 
                [tgl_tindak_lanjut] => 0000-00-00 
               ) 

              [1] => stdClass Object 
               (
                [id] => 11 
                [id_tindak_lanjut] => 
                [tgl_tindak_lanjut] => 0000-00-00 
               ) 

             ) 

           ) 

         ) 

       ) 

     ) 

) 

我已经试过

$Object1['data']->$Object2; 

但我得到了一个错误

不能使用类型为stdClass的对象作为数组

回答

3

添加$Object2作为语法$Object1的财产是:

$Object1->Object2 = $Object2; 

或者:

$Object1->{'Object2'} = $Object2; 
+0

好的,这个语法可以工作。但是当我将它推入Object1时,我得到了一个数组。我希望它是stdClassObject 而我如何将整个object2变成一个数组? – Gagantous

+0

你可以使用'(array)$ object'。 – Marty

+0

我必须为每个['data_sebab'],[data_rekomendasi]和[data_tindak_lanjut]数组添加(object)成为object?或者有一个为什么要一次改变它们? ?我已经添加了这个$​​ Object1-> Object2 =(object)$ Object2;但它只有Object2数组发生了变化,而不是内部数组@Marty – Gagantous

3

它应该是:

$Object1->data = $Object2; // it will create data element with obj2 as value 
1

由于对象是对象而不是数组,使用:

$Object1['data']->$Object2; 

不会工作。但是,执行以下操作将起作用:

$Object1->data = $Object2;