Php menambahkan objek ke objek lain

Mari kita lihat bagaimana array_merge digunakan untuk menambahkan array ke array lain. Perhatikan bahwa setelah menggabungkan array, fungsi ini mengembalikan array baru

Contohnya ditunjukkan di bawah ini

Mari kita lihat hasilnya

  arr1 Contents:
  W3
  w3d
  W3docs
  Computer science portal

Mari pertimbangkan metode alternatif untuk menambahkan array ke array lain dengan PHP

Di sini, kita akan menggunakan fungsi array_push. Kecuali, array_merge, itu mendorong elemen array kedua ke yang pertama di tempat

Untuk persepsi yang lebih baik, lihat contoh di bawah ini

Outputnya akan

  arr1 = 1 2 3 4
_

Juga, Anda dapat menemukan metode lain dengan tanda +. Kami tidak menyarankan untuk menggunakannya dalam versi modern, karena memberikan peringatan yang fatal

Fungsi array_merge ditujukan untuk menggabungkan satu atau lebih array. Itu menggabungkan mereka bersama-sama sedemikian rupa sehingga nilai satu ditambahkan ke akhir yang sebelumnya. Akibatnya, ia mengembalikan array baru

Jika ada kunci string yang sama untuk array input, yang terakhir akan menimpa yang sebelumnya

Fungsi array_push ditujukan untuk mendorong satu atau lebih elemen ke arah akhir array. Itu menganggap array sebagai tumpukan, mendorong variabel yang diteruskan ke akhir array

Anggaplah kita memiliki kelas bernama Buah. Buah dapat memiliki sifat seperti nama, warna, berat, dll. Kita dapat mendefinisikan variabel seperti $name, $color, dan $weight untuk menyimpan nilai properti ini

Ketika objek individu (apel, pisang, dll. ) dibuat, mereka mewarisi semua properti dan perilaku dari kelas, tetapi setiap objek akan memiliki nilai properti yang berbeda


Tentukan Kelas

Kelas didefinisikan dengan menggunakan kata kunci class, diikuti dengan nama kelas dan sepasang kurung kurawal ({}). Semua properti dan metodenya masuk ke dalam kawat gigi

Sintaksis

kelas Buah {
// kode di sini
}
?>

Di bawah ini kami mendeklarasikan kelas bernama Fruit yang terdiri dari dua properti ($name dan $color) dan dua metode set_name() dan get_name() untuk menyetel dan mendapatkan properti $name

kelas Buah {
// Properti
publik $nama;
publik $warna;

// Metode
fungsi set_name($nama) {
$ini->nama = $nama;
}
fungsi get_name() {
return $ini->nama;
}
}
?>

Catatan. Di kelas, variabel disebut properti dan fungsi disebut metode


Tentukan Objek

Kelas bukanlah apa-apa tanpa objek. Kita dapat membuat banyak objek dari sebuah kelas. Setiap objek memiliki semua properti dan metode yang ditentukan dalam kelas, tetapi mereka akan memiliki nilai properti yang berbeda

Objek kelas dibuat menggunakan kata kunci new

Pada contoh di bawah ini, $apple dan $banana adalah instance dari kelas Fruit

Contoh

kelas Buah {
// Properti
publik $nama;
publik $warna;

// Metode
fungsi set_name($nama) {
$ini->nama = $nama;
}
fungsi get_name() {
return $ini->nama;
}
}

$apel = Buah baru();
$pisang = Buah baru();
$apel->set_name('Apel');
$banana->set_name('Banana');

echo $apel->get_name();
gema "
";
echo $banana->get_name();
?>

Cobalah sendiri "

Pada contoh di bawah ini, kami menambahkan dua metode lagi ke kelas Fruit, untuk menyetel dan mendapatkan properti $color


Kodenya adalah sebagai berikut −

Contoh

$object = new stdClass();
$object->name = "My name";
$myArray[] = $object;

Keluaran

Ini akan menghasilkan output berikut -

Suppose myArray already contains ‘a’ and ‘c’, the value of “My name” will be added to it. It becomes
Array {
   a:0, c:1, “My name”:2
}
_

Objek dibuat dan kemudian didorong ke akhir array (yang sebelumnya ada)

Alternatif

$myArray[] = (object) ['name' => 'My name'];

Php menambahkan objek ke objek lain


Php menambahkan objek ke objek lain

Satu-satunya saat Anda menemukan objek stdClass (saya yakin) adalah saat Anda memasukkan array sebagai objek atau saat Anda membuat objek stdClass baru dari awal (dan tentu saja saat Anda json_decode() sesuatu - konyol saya karena lupa. ). Pertanyaan. Saya memiliki objek ini. Ini memberikan objek bernama user1. X nanti saya memiliki fungsi yang mirip seperti ini, dimana saya menggunakan the yang mewakili nama pengguna untuk terhubung ke db untuk mendapatkan informasi tambahan

Tambahkan objek ke objek lain di php

Pertanyaan.

Saya memiliki objek ini

foreach(range(1,$oc->num_users) as $num) {
    $user = 'user' . $num;
    $$user = mysql_fetch_object(mysql_query("SELECT user".$num.", user".$num."_ready,  FROM oc_db WHERE leader='".$_SESSION['username']."' ")); 
_

Ini memberikan objek bernama user1. X

nanti saya memiliki fungsi yang mirip seperti ini, di mana saya menggunakan

$tmp = mysql_fetch_object(mysql_query("SELECT x, y, z FROM user_db WHERE username='".$$user->$user."' "));
foreach ($tmp as $key => $value) {
    $$user->$key = $value;
}
9 yang mewakili nama pengguna untuk terhubung ke db untuk mendapatkan informasi tambahan

   $$user = mysql_fetch_object(mysql_query("SELECT x, y, z FROM user_db WHERE username='".$$user->$user."' "));
_

Ini juga membuat objek bernama user1. X, tetapi alih-alih mengganti objek yang dibuat sebelumnya, saya ingin menambahkan nilai ini ke objek yang saya buat di fungsi pertama.

array(2) {
  [0]=>
  object(stdClass)#2 (6) {
    ["name"]=>
    string(45) "Lorem"
    ["title"]=>
    string(96) "Lorem ipsum"
  }
  [1]=>
  object(stdClass)#3 (6) {
    ["name"]=>
    string(41) "Ipsum"
    ["title"]=>
    string(86) "Dolor sit amet"
  }
}
_0 adalah nama objek. Saya ingin melakukan sesuatu seperti
array(2) {
  [0]=>
  object(stdClass)#2 (6) {
    ["name"]=>
    string(45) "Lorem"
    ["title"]=>
    string(96) "Lorem ipsum"
  }
  [1]=>
  object(stdClass)#3 (6) {
    ["name"]=>
    string(41) "Ipsum"
    ["title"]=>
    string(86) "Dolor sit amet"
  }
}
1 di fungsi terakhir, tapi tentu saja tidak sesederhana itu


Solusi 1.

Untuk menambahkan satu objek ke objek lain, Anda hanya perlu mengulangi objek pertama dan kemudian menetapkan setiap properti yang Anda temukan ke objek kedua

$tmp = mysql_fetch_object(mysql_query("SELECT x, y, z FROM user_db WHERE username='".$$user->$user."' "));
foreach ($tmp as $key => $value) {
    $$user->$key = $value;
}

Solusi 2

Selain itu, jika Anda mencoba mengakses

array(2) {
  [0]=>
  object(stdClass)#2 (6) {
    ["name"]=>
    string(45) "Lorem"
    ["title"]=>
    string(96) "Lorem ipsum"
  }
  [1]=>
  object(stdClass)#3 (6) {
    ["name"]=>
    string(41) "Ipsum"
    ["title"]=>
    string(86) "Dolor sit amet"
  }
}
2 properti objek, maka Anda harus menggunakan
array(2) {
  [0]=>
  object(stdClass)#2 (6) {
    ["name"]=>
    string(45) "Lorem"
    ["title"]=>
    string(96) "Lorem ipsum"
  }
  [1]=>
  object(stdClass)#3 (6) {
    ["name"]=>
    string(41) "Ipsum"
    ["title"]=>
    string(86) "Dolor sit amet"
  }
}
3 , karena
$tmp = mysql_fetch_object(mysql_query("SELECT x, y, z FROM user_db WHERE username='".$$user->$user."' "));
foreach ($tmp as $key => $value) {
    $$user->$key = $value;
}
9 akan mencoba mengakses properti bernomor (e. g. untuk objek
array(2) {
  [0]=>
  object(stdClass)#2 (6) {
    ["name"]=>
    string(45) "Lorem"
    ["title"]=>
    string(96) "Lorem ipsum"
  }
  [1]=>
  object(stdClass)#3 (6) {
    ["name"]=>
    string(41) "Ipsum"
    ["title"]=>
    string(86) "Dolor sit amet"
  }
}
_5 , Anda mencoba mengakses
array(2) {
  [0]=>
  object(stdClass)#2 (6) {
    ["name"]=>
    string(45) "Lorem"
    ["title"]=>
    string(96) "Lorem ipsum"
  }
  [1]=>
  object(stdClass)#3 (6) {
    ["name"]=>
    string(41) "Ipsum"
    ["title"]=>
    string(86) "Dolor sit amet"
  }
}
6 ). Saya juga akan mempertimbangkan untuk menggunakan array, seperti yang disarankan fredley (mis. e. gunakan
array(2) {
  [0]=>
  object(stdClass)#2 (6) {
    ["name"]=>
    string(45) "Lorem"
    ["title"]=>
    string(96) "Lorem ipsum"
  }
  [1]=>
  object(stdClass)#3 (6) {
    ["name"]=>
    string(41) "Ipsum"
    ["title"]=>
    string(86) "Dolor sit amet"
  }
}
7 alih-alih
array(2) {
  [0]=>
  object(stdClass)#2 (6) {
    ["name"]=>
    string(45) "Lorem"
    ["title"]=>
    string(96) "Lorem ipsum"
  }
  [1]=>
  object(stdClass)#3 (6) {
    ["name"]=>
    string(41) "Ipsum"
    ["title"]=>
    string(86) "Dolor sit amet"
  }
}
8 )

Untuk mendekati pertanyaan awal Anda, alih-alih menggunakan operator penugasan rangkaian

array(2) {
  [0]=>
  object(stdClass)#2 (6) {
    ["name"]=>
    string(45) "Lorem"
    ["title"]=>
    string(96) "Lorem ipsum"
  }
  [1]=>
  object(stdClass)#3 (6) {
    ["name"]=>
    string(41) "Ipsum"
    ["title"]=>
    string(86) "Dolor sit amet"
  }
}
9, Anda dapat mencoba menambahkan metode ke kelas
array(2) {
  [0]=>
  object(stdClass)#2 (6) {
    ["name"]=>
    string(45) "Lorem"
    ["title"]=>
    string(96) "Lorem ipsum"
  }
  [1]=>
  object(stdClass)#3 (6) {
    ["name"]=>
    string(41) "Ipsum"
    ["title"]=>
    string(86) "Dolor sit amet"
  }
}
2 Anda, seperti
array(2) {
  [0]=>
  object(stdClass)#2 (6) {
    ["name"]=>
    string(45) "Lorem"
    ["title"]=>
    string(96) "Lorem ipsum"
    ["url"]=>
    string(86) "http://www.google.com"
  }
  [1]=>
  object(stdClass)#3 (6) {
    ["name"]=>
    string(41) "Ipsum"
    ["title"]=>
    string(86) "Dolor sit amet"
    ["url"]=>
    string(86) "http://www.stackoverflow.com"
  }
}
1 , kemudian menggunakannya untuk menambahkan objek yang diambil ke objek Anda saat ini seperti
array(2) {
  [0]=>
  object(stdClass)#2 (6) {
    ["name"]=>
    string(45) "Lorem"
    ["title"]=>
    string(96) "Lorem ipsum"
    ["url"]=>
    string(86) "http://www.google.com"
  }
  [1]=>
  object(stdClass)#3 (6) {
    ["name"]=>
    string(41) "Ipsum"
    ["title"]=>
    string(86) "Dolor sit amet"
    ["url"]=>
    string(86) "http://www.stackoverflow.com"
  }
}
2. Dalam metode
array(2) {
  [0]=>
  object(stdClass)#2 (6) {
    ["name"]=>
    string(45) "Lorem"
    ["title"]=>
    string(96) "Lorem ipsum"
    ["url"]=>
    string(86) "http://www.google.com"
  }
  [1]=>
  object(stdClass)#3 (6) {
    ["name"]=>
    string(41) "Ipsum"
    ["title"]=>
    string(86) "Dolor sit amet"
    ["url"]=>
    string(86) "http://www.stackoverflow.com"
  }
}
_1, Anda dapat menentukan aturan Anda sendiri tentang bagaimana objek yang diambil ditambahkan ke objek pengguna Anda saat ini

Php - Tambahkan Objek Tambahan ke JSON Encoded Array, PHP - Cara menambahkan lebih banyak objek ke JSON Encoded Array. Terkait. 4660. Bagaimana cara saya memeriksa apakah sebuah array menyertakan nilai dalam JavaScript? . Bisakah komentar digunakan di JSON? . Apa jenis konten JSON yang benar? . Cara memasukkan item ke dalam array pada indeks tertentu (JavaScript) 3715

Tag

pasangan nilai kunci ke objek di php php menambahkan data ke objek array

PHP menambahkan data ke objek array

Pertanyaan

Di PHP saya memiliki array

array(2) {
  [0]=>
  object(stdClass)#2 (6) {
    ["name"]=>
    string(45) "Lorem"
    ["title"]=>
    string(96) "Lorem ipsum"
    ["url"]=>
    string(86) "http://www.google.com"
  }
  [1]=>
  object(stdClass)#3 (6) {
    ["name"]=>
    string(41) "Ipsum"
    ["title"]=>
    string(86) "Dolor sit amet"
    ["url"]=>
    string(86) "http://www.stackoverflow.com"
  }
}
4. Menjalankan
array(2) {
  [0]=>
  object(stdClass)#2 (6) {
    ["name"]=>
    string(45) "Lorem"
    ["title"]=>
    string(96) "Lorem ipsum"
    ["url"]=>
    string(86) "http://www.google.com"
  }
  [1]=>
  object(stdClass)#3 (6) {
    ["name"]=>
    string(41) "Ipsum"
    ["title"]=>
    string(86) "Dolor sit amet"
    ["url"]=>
    string(86) "http://www.stackoverflow.com"
  }
}
_5 terlihat seperti ini

array(2) {
  [0]=>
  object(stdClass)#2 (6) {
    ["name"]=>
    string(45) "Lorem"
    ["title"]=>
    string(96) "Lorem ipsum"
  }
  [1]=>
  object(stdClass)#3 (6) {
    ["name"]=>
    string(41) "Ipsum"
    ["title"]=>
    string(86) "Dolor sit amet"
  }
}
_

Sekarang saya perlu menambahkan bidang lain (

array(2) {
  [0]=>
  object(stdClass)#2 (6) {
    ["name"]=>
    string(45) "Lorem"
    ["title"]=>
    string(96) "Lorem ipsum"
    ["url"]=>
    string(86) "http://www.google.com"
  }
  [1]=>
  object(stdClass)#3 (6) {
    ["name"]=>
    string(41) "Ipsum"
    ["title"]=>
    string(86) "Dolor sit amet"
    ["url"]=>
    string(86) "http://www.stackoverflow.com"
  }
}
6 ) ke objek
array(2) {
  [0]=>
  object(stdClass)#2 (6) {
    ["name"]=>
    string(45) "Lorem"
    ["title"]=>
    string(96) "Lorem ipsum"
    ["url"]=>
    string(86) "http://www.google.com"
  }
  [1]=>
  object(stdClass)#3 (6) {
    ["name"]=>
    string(41) "Ipsum"
    ["title"]=>
    string(86) "Dolor sit amet"
    ["url"]=>
    string(86) "http://www.stackoverflow.com"
  }
}
4 sehingga terlihat seperti

array(2) {
  [0]=>
  object(stdClass)#2 (6) {
    ["name"]=>
    string(45) "Lorem"
    ["title"]=>
    string(96) "Lorem ipsum"
    ["url"]=>
    string(86) "http://www.google.com"
  }
  [1]=>
  object(stdClass)#3 (6) {
    ["name"]=>
    string(41) "Ipsum"
    ["title"]=>
    string(86) "Dolor sit amet"
    ["url"]=>
    string(86) "http://www.stackoverflow.com"
  }
}

Saya sudah mencoba

array(2) {
  [0]=>
  object(stdClass)#2 (6) {
    ["name"]=>
    string(45) "Lorem"
    ["title"]=>
    string(96) "Lorem ipsum"
    ["url"]=>
    string(86) "http://www.google.com"
  }
  [1]=>
  object(stdClass)#3 (6) {
    ["name"]=>
    string(41) "Ipsum"
    ["title"]=>
    string(86) "Dolor sit amet"
    ["url"]=>
    string(86) "http://www.stackoverflow.com"
  }
}
_8 dan
array(2) {
  [0]=>
  object(stdClass)#2 (6) {
    ["name"]=>
    string(45) "Lorem"
    ["title"]=>
    string(96) "Lorem ipsum"
    ["url"]=>
    string(86) "http://www.google.com"
  }
  [1]=>
  object(stdClass)#3 (6) {
    ["name"]=>
    string(41) "Ipsum"
    ["title"]=>
    string(86) "Dolor sit amet"
    ["url"]=>
    string(86) "http://www.stackoverflow.com"
  }
}
9 , tetapi saya mendapatkan kesalahan. Bukankah ini sangat mudah dilakukan?


Solusi 1

Anda dekat

foreach( $test as $t ) {
    $t->url = "http://www.example.com";
}

Sepertinya Anda mencoba menggunakan

foreach( $test as $t ) {
    $t->url = "http://www.example.com";
}
0 (metode
foreach( $test as $t ) {
    $t->url = "http://www.example.com";
}
1 ) saat Anda benar-benar berurusan dengan
foreach( $test as $t ) {
    $t->url = "http://www.example.com";
}
2

Solusi 2

Append adalah untuk menambahkan seluruh objek ke objek lain. Cukup gunakan referensi objek normal (obj->value) untuk menetapkan url


$objectOne = new \stdClass();
$objectOne->name = 'Lorem';
$objectOne->title = 'Lorem ipsum';
$objectTwo = new \stdClass();
$objectTwo->name = 'Ipsum';
$objectTwo->title = 'Dolor sit amet';
$test = array(
    0 => $objectOne,
    1 => $objectTwo
);
$urls = array(
    0 => 'http://www.google.com',
    1 => 'http://www.stackoverflow.com'
);
$i = 0;
foreach ($test as $site) {
  // Add url from urls array to object
  $site->url = $urls[$i];
  $i++;
}
var_dump($test);

Keluaran

array(2) {
  [0]=>
  object(stdClass)#1 (3) {
    ["name"]=>
    string(5) "Lorem"
    ["title"]=>
    string(11) "Lorem ipsum"
    ["url"]=>
    string(21) "http://www.google.com"
  }
  [1]=>
  object(stdClass)#2 (3) {
    ["name"]=>
    string(5) "Ipsum"
    ["title"]=>
    string(14) "Dolor sit amet"
    ["url"]=>
    string(28) "http://www.stackoverflow.com"
  }
}

PHP. Menambahkan elemen dalam array di foreach loop, Tidak perlu menggunakan referensi untuk memodifikasi array objek seperti yang Anda miliki, karena salinan pengenal objek di foreach loop masih menunjuk ke objek yang sama. Anda dapat membaca tentang ini di…

Bagaimana cara menambahkan pasangan nilai kunci baru ke objek di PHP?

Pertanyaan

Saya kira pertanyaan saya adalah dua kali lipat

Dengan Python jika saya melakukan ini

x = {key: value}

Saya telah membuat kamus

Dalam javaScript jika saya melakukan hal yang sama saya telah membuat objek

Apa itu di PHP?

Saya sedang mengerjakan proyek dengan laravel. Saya pada dasarnya memiliki database sqlite yang saya akses. Ini mengembalikan array 'objek' (dalam istilah javaScript). Saya ingin melakukan foreach loop melalui 'objek' dalam array dan saya ingin menambahkan kunci dan nilai baru ke 'objek'

Kedua - Maaf saya tidak 100 persen yakin dengan sintaks- di php

$person = [0 => {name: "Jake", age: 22},
           1 => {name: "Chris", age: 34}];

Sekali lagi saya benar-benar minta maaf tentang sintaksnya, saya menerima array langsung dari database sqlite sehingga tidak terlalu penting pada tahap ini

Pertanyaan saya adalah - Jika saya ingin menambahkan katakanlah, ketinggian untuk setiap orang, bagaimana cara melakukannya? . Hasilnya akan

   $$user = mysql_fetch_object(mysql_query("SELECT x, y, z FROM user_db WHERE username='".$$user->$user."' "));
_0

Saya tahu ini adalah pertanyaan yang sangat sederhana tetapi saya kesulitan menemukan pertanyaan yang tepat untuk ditanyakan kepada Google. Jika saya mengajukan pertanyaan yang salah, tolong beri tahu saya. Saya sudah terlalu lama menggaruk-garuk kepala pada sesuatu yang bisa saya lakukan dengan mudah dalam bahasa lain. Saya sangat menghargai bantuannya


Solusi 1

Ini akan menambahkan objek baru di akhir array objek

   $$user = mysql_fetch_object(mysql_query("SELECT x, y, z FROM user_db WHERE username='".$$user->$user."' "));
_1

Jika Anda ingin menambahkan properti baru ke objek, Anda cukup melakukannya

   $$user = mysql_fetch_object(mysql_query("SELECT x, y, z FROM user_db WHERE username='".$$user->$user."' "));
_2

Solusi 2

Anda memiliki dua opsi di sini. Yang pertama hanyalah ________32______3. Array dalam PHP bersifat asosiatif, sehingga dapat menggunakan string sebagai kunci, bukan hanya angka. Anda akan melakukan sesuatu seperti ini

   $$user = mysql_fetch_object(mysql_query("SELECT x, y, z FROM user_db WHERE username='".$$user->$user."' "));
_3

Untuk menambahkan sesuatu ke array seperti ini, Anda cukup menentukan kunci baru.

foreach( $test as $t ) {
    $t->url = "http://www.example.com";
}
_4. Anda juga dapat menggunakan
foreach( $test as $t ) {
    $t->url = "http://www.example.com";
}
5 loop (atau
foreach( $test as $t ) {
    $t->url = "http://www.example.com";
}
6 dengan referensi) untuk menambahkan ini ke setiap orang berdasarkan beberapa rumus jika Anda mau

Namun, ini agak tidak enak, karena array membuat struktur data yang buruk. tidak ada informasi yang ditentukan sebelumnya tentang data apa yang bisa ada di dalamnya, apa yang bisa dilakukan dengan data itu, dan sebagainya. Sebagai gantinya, Anda ingin mendeklarasikan kelas secara umum, paling tidak seperti ini

   $$user = mysql_fetch_object(mysql_query("SELECT x, y, z FROM user_db WHERE username='".$$user->$user."' "));
_4

Kemudian Anda bisa membuat

foreach( $test as $t ) {
    $t->url = "http://www.example.com";
}
_7 dan mengatur nilai menggunakan sintaks panah.
foreach( $test as $t ) {
    $t->url = "http://www.example.com";
}
_8. Idealnya, Anda juga ingin konstruktor menerima nilai awal dan penyetel/pengambil untuk memungkinkan memvalidasi data yang diteruskan ke objek daripada menerima begitu saja nilai apa pun yang diberikan, tetapi itu bisa datang nanti

Ini adalah dua pilihan Anda. Secara umum, pilih array untuk struktur data sementara yang cepat dan kotor dan pilih objek untuk data yang lebih kompleks dan persisten. Karena saya tidak dapat melihat apa yang Anda coba lakukan dengan data ini, saya tidak dapat dengan tegas mengatakan apakah array atau objek paling cocok di sini

Solusi 3

Ini cukup tua tetapi ada opsi lain yang tidak disebutkan

Anda dapat mencapai cara yang telah Anda periksa dengan python

jadi untuk membuat objek berikut ini. (Python)

   $$user = mysql_fetch_object(mysql_query("SELECT x, y, z FROM user_db WHERE username='".$$user->$user."' "));
_5

akan kami lakukan. (PHP)

   $$user = mysql_fetch_object(mysql_query("SELECT x, y, z FROM user_db WHERE username='".$$user->$user."' "));
_6

karena dalam python dan javascript dan bahasa lain saya kira mereka menggunakan format json untuk objek. php memiliki fungsi bawaan yang mengubah string json menjadi objek jadi kita hanya perlu mentransmisikan format yang diketahui ke string dan memberi tahu php untuk menguraikannya dan kita akan mendapatkan hasil yang sama

sekarang jika kita ingin menambahkan sesuatu ke objek, itu bisa dilakukan dengan itu

   $$user = mysql_fetch_object(mysql_query("SELECT x, y, z FROM user_db WHERE username='".$$user->$user."' "));
_7

keluaran

   $$user = mysql_fetch_object(mysql_query("SELECT x, y, z FROM user_db WHERE username='".$$user->$user."' "));
_8

Fungsi ArrayObject append() di PHP, Fungsi append() dari kelas ArrayObject di PHP digunakan untuk menambahkan nilai yang diberikan ke ArrayObject. Nilai yang ditambahkan bisa berupa nilai tunggal atau array itu sendiri. Sintaksis

Tambahkan properti dan nilai dalam larik objek

Pertanyaan

saya cukup baru di php OOP, dan saya menggunakan laravel memiliki kerangka pilihan saya. Saya membuat pengguna objek dan membuat catatan, satu-satunya hal yang harus saya lakukan adalah memeriksa apakah salah satu bidang input saya (tidak wajib) telah disetel, jika sudah disetel daripada yang harus saya tambahkan di objek pengguna, tetapi caranya

kode

   $$user = mysql_fetch_object(mysql_query("SELECT x, y, z FROM user_db WHERE username='".$$user->$user."' "));
_9


Solusi 1

Jika Anda benar-benar harus menambahkan properti ke objek, saya yakin Anda dapat memasukkannya sebagai array, menambahkan properti Anda (sebagai kunci array baru), lalu mengembalikannya sebagai objek. Satu-satunya saat Anda menemukan objek stdClass (saya yakin) adalah saat Anda memasukkan array sebagai objek atau saat Anda membuat objek stdClass baru dari awal (dan tentu saja saat Anda json_decode() sesuatu - konyol saya karena lupa. )

Alih-alih

$tmp = mysql_fetch_object(mysql_query("SELECT x, y, z FROM user_db WHERE username='".$$user->$user."' "));
foreach ($tmp as $key => $value) {
    $$user->$key = $value;
}
0

Anda akan melakukannya

$tmp = mysql_fetch_object(mysql_query("SELECT x, y, z FROM user_db WHERE username='".$$user->$user."' "));
foreach ($tmp as $key => $value) {
    $$user->$key = $value;
}
1

Atau jika Anda sudah memiliki objek stdClass yang sudah ada

$tmp = mysql_fetch_object(mysql_query("SELECT x, y, z FROM user_db WHERE username='".$$user->$user."' "));
foreach ($tmp as $key => $value) {
    $$user->$key = $value;
}
2

Juga sebagai 1 liner

$tmp = mysql_fetch_object(mysql_query("SELECT x, y, z FROM user_db WHERE username='".$$user->$user."' "));
foreach ($tmp as $key => $value) {
    $$user->$key = $value;
}
3

atau mungkin Anda bisa melakukannya dengan cara ini

$tmp = mysql_fetch_object(mysql_query("SELECT x, y, z FROM user_db WHERE username='".$$user->$user."' "));
foreach ($tmp as $key => $value) {
    $$user->$key = $value;
}
4

Solusi 2

Ada beberapa cara yang bisa Anda lakukan

Persiapkan larik terlebih dahulu

$tmp = mysql_fetch_object(mysql_query("SELECT x, y, z FROM user_db WHERE username='".$$user->$user."' "));
foreach ($tmp as $key => $value) {
    $$user->$key = $value;
}
5

Atau buat objek terlebih dahulu lalu simpan

$tmp = mysql_fetch_object(mysql_query("SELECT x, y, z FROM user_db WHERE username='".$$user->$user."' "));
foreach ($tmp as $key => $value) {
    $$user->$key = $value;
}
6

Seperti Anda saat ini, tetapi dengan permintaan tambahan (saya sarankan)

$tmp = mysql_fetch_object(mysql_query("SELECT x, y, z FROM user_db WHERE username='".$$user->$user."' "));
foreach ($tmp as $key => $value) {
    $$user->$key = $value;
}
7

Solusi 3

bagaimana saya bisa menambahkan properti ini (ponsel) dan nilai pada objek yang ada, apakah saya melakukannya dengan benar?

Ini sangat tergantung pada kerangka yang Anda gunakan. Secara umum, Anda dapat menambahkan properti sewenang-wenang ke objek apa pun di PHP (yang tidak berarti Anda harus selalu )

Dalam kasus Anda, Anda menggunakan kerangka kerja Eloquent yang disertakan dengan Laravel, yang sebenarnya bergantung pada atribut objek yang ditetapkan secara dinamis dan menggunakannya dengan sangat benar. Ini didokumentasikan secara mendalam dalam dokumentasi resmi. Perhatikan bahwa Anda mungkin harus menelepon

foreach( $test as $t ) {
    $t->url = "http://www.example.com";
}
9 di beberapa titik untuk benar-benar menyimpan objek pengguna Anda (terima kasih kepada Ben untuk petunjuknya)

Perhatikan bahwa sebagai alternatif, Anda dapat menetapkan semua properti instance

$objectOne = new \stdClass();
$objectOne->name = 'Lorem';
$objectOne->title = 'Lorem ipsum';
$objectTwo = new \stdClass();
$objectTwo->name = 'Ipsum';
$objectTwo->title = 'Dolor sit amet';
$test = array(
    0 => $objectOne,
    1 => $objectTwo
);
$urls = array(
    0 => 'http://www.google.com',
    1 => 'http://www.stackoverflow.com'
);
$i = 0;
foreach ($test as $site) {
  // Add url from urls array to object
  $site->url = $urls[$i];
  $i++;
}
var_dump($test);
0 Anda seperti itu

$tmp = mysql_fetch_object(mysql_query("SELECT x, y, z FROM user_db WHERE username='".$$user->$user."' "));
foreach ($tmp as $key => $value) {
    $$user->$key = $value;
}
_8

Bagaimana cara menambahkan elemen ke objek JSON menggunakan PHP?, Saya memiliki array JSON ini, dan saya ingin menambahkan nilai lain menggunakan PHP. Apa cara termudah untuk menambahkan ID dan Nama ke array ini menggunakan PHP. [ { "pengenal". 1, "nama". "Charlie"

Bagaimana cara menambahkan satu objek ke objek lain di PHP?

Untuk mendekati pertanyaan awal Anda, alih-alih menggunakan. = operator penugasan gabungan, Anda dapat mencoba menambahkan metode ke kelas pengguna Anda, seperti append , lalu menggunakannya untuk menambahkan objek yang diambil ke objek Anda saat ini seperti $user->append( fetch_object(. ));

Apa gunanya menambahkan () di PHP?

Fungsi append() dari kelas ArrayObject di PHP digunakan untuk menambahkan nilai tertentu ke ArrayObject . Nilai yang ditambahkan bisa berupa nilai tunggal atau array itu sendiri. Parameter. Fungsi ini menerima parameter tunggal $value, yang mewakili nilai yang akan ditambahkan.

Apa metode terbaik untuk menggabungkan dua objek PHP?

Objek juga dapat digabungkan dengan menggunakan fungsi array_merge_recursive() bawaan bawaan, yang digunakan untuk menggabungkan array bersarang. Oleh karena itu, jika ada larik yang berisi larik lain di dalamnya, maka fungsi ini akan mengembalikan larik gabungan dengan menggabungkan nilai dari larik bersarang.

Bagaimana cara menambahkan item ke array objek di PHP?

Lakukan saja. $objek = stdKelas baru(); . create the object first (the new line) and then push it onto the end of the array (the [] line).