Created
December 17, 2016 17:01
-
-
Save bangiqi/88860d9f5dd46628152d532e891f3eea to your computer and use it in GitHub Desktop.
array object, edisi penasaran sama foreach
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?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_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"; | |
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