Skip to content

Instantly share code, notes, and snippets.

@bangiqi
Created December 17, 2016 17:01
Show Gist options
  • Save bangiqi/88860d9f5dd46628152d532e891f3eea to your computer and use it in GitHub Desktop.
Save bangiqi/88860d9f5dd46628152d532e891f3eea to your computer and use it in GitHub Desktop.
array object, edisi penasaran sama foreach
<?php
/**
* Created by PhpStorm.
* User: ramdani
* Date: 12/17/2016
* Time: 9:12 PM
*/
class Loop
{
public function simpleArray()
{
$data = [
"data"=>
array(
"nama"=>"rizki a",
"kelas"=>"karyawan A"
),
array(
"nama"=>"rizki b",
"kelas"=>"karyawan A"
),
array(
"nama"=>"rizki c",
"kelas"=>"karyawan A"
)
];
return $this->toJson($data);
}
public function toJson($array)
{
return json_encode($array);
}
public function toObject($array)
{
return (object) $array;
}
public function fromJsonToObject($json)
{
return json_decode($json);
}
}
//instance object
$loop = new Loop();
//convert simple array to json
$convertJsonWithSimpleArray = $loop->simpleArray();
echo "\n=== simple array to json ===\n\n";
//print
print_r($convertJsonWithSimpleArray);
//parsing json to object
$parsingJson = $loop->fromJsonToObject($convertJsonWithSimpleArray);
echo "\n\n=== cara parsing json 1 ===\n\n";
//print $parsingJson
var_dump($parsingJson);
echo "\n=== iterate to string ===\n";
//iterate $parsingJson to string
foreach ($parsingJson as $data) {
//bisa menggunakan -> karena data berupa object setelah
//proses convert menggunakan fungsi json_decode
echo "nama\t: ".$data->nama."\n";
echo "kelas\t: ".$data->kelas."\n";
echo "-------------------------\n";
}
echo "***************************************\n";
$dataJSON = '
{
"pengajar": "Rizki Ramdani",
"mata_pelajaran": "Pemrograman Berorientasi Obyek",
"siswa": [
{
"nama":"Fahrezi A",
"kelas":"XI RPL 1"
},
{
"nama":"Ruslan",
"kelas":"XI RPL 3"
}
]
}
';
//parsing json to object lalu dijadikan array
$parsingJsonStatic[] = $loop->fromJsonToObject($dataJSON);
//parsing json to object hanya dijadikan object
$parsingJsonStaticObject = $loop->fromJsonToObject($dataJSON);
echo "\n=== Looping langsung dari data yang dijadikan array dan didalamnya terdapat object ===\n";
//print
var_dump($parsingJsonStatic);
echo "\n=== Data Pengajar ===\n";
//iterate $parsingJson to string
foreach ($parsingJsonStatic as $data) {
echo "Pengajar \t\t: ".$data->pengajar."\n";
echo "Mata Pelajaran \t: ".$data->mata_pelajaran."\n";
echo "=== List Siswa ===\n";
foreach ($data->siswa as $dataSiswa) {
//bisa menggunakan -> karena data berupa object setelah
//proses convert menggunakan fungsi json_decode
echo "nama siswa\t: ".$dataSiswa->nama."\n";
echo "kelas\t\t: ".$dataSiswa->kelas."\n";
}
echo "*************************************\n\n";
}
echo "\n=== Looping langsung dari data yang dijadikan object ===\n";
var_dump($parsingJsonStaticObject);
echo "\n=== parsing data ===\n";
foreach ($parsingJsonStaticObject->siswa as $data) {
//bisa menggunakan -> karena data berupa object setelah
//proses convert menggunakan fungsi json_decode
echo "nama siswa\t: ".$data->nama."\n";
echo "kelas\t\t: ".$data->kelas."\n";
}
echo "\n=== with very simple array ===\n";
//array biasa
$dataArrayAnother = [
"nama"=>"rizki b",
"kelas"=>"karyawan A"
];
//setelah di convert
$convertToJson = $loop->toJson($dataArrayAnother);
var_dump($convertToJson);
echo "\n=== array object ===\n";
//setelah di parsing
//harus dijadiin array dulu
$parsingAgain[] = $loop->fromJsonToObject($convertToJson);
var_dump($parsingAgain);
echo "=== parsing ===\n";
//iterate
foreach ($parsingAgain as $data) {
echo "namaku : ".$data->nama."\n";
echo "kelasku : ".$data->kelas;
}
// cara parsing json 1 tidak direcomendasikan karna bentuk array yang
// tidak rapi antara object dan array tidak mudah diparsing sesuai key
// pada array tersebut.
//FAQ
// answer : Kenapa harus di json_encode dan di json_decode terlebih dahulu?
// question : karena dengan kita mengkonvert terlebih dahulu, list array
// yang sudah terdaftar akan otomatis dijadikan object dan selanjutnya ketika
// ingin diloop, kita bisa menggunakan simbol -> untuk memanggil key karna bersifat
// array object bukan array assosiatif, baru nemu cara ini, mungkin ada cara
// yang lebih simple lagi???
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment