Perulangan array json di php

Loop foreach_ hanya bekerja pada array, dan digunakan untuk mengulang setiap pasangan kunci/nilai dalam array

Sintaksis

foreach ($array sebagai $nilai) {
kode yang akan dieksekusi;
}

Untuk setiap iterasi loop, nilai elemen array saat ini ditetapkan ke $value dan penunjuk array dipindahkan satu per satu, hingga mencapai elemen array terakhir

Karena format JSON adalah format berbasis teks, ia dapat dengan mudah dikirim ke dan dari server, dan digunakan sebagai format data oleh bahasa pemrograman apa pun.


PHP memiliki beberapa fungsi bawaan untuk menangani JSON

Pertama, kita akan melihat dua fungsi berikut

  • json_encode()
  • json_decode()

PHP - json_encode()

Fungsi json_encode() digunakan untuk menyandikan nilai ke format JSON

Contoh

Contoh ini menunjukkan cara menyandikan larik asosiatif menjadi objek JSON

$umur = array("Peter"=>35, "Ben"=>37, "Joe"=>43);

echo json_encode($umur);
?>

Jalankan Contoh »

Contoh

Contoh ini menunjukkan cara menyandikan array yang diindeks ke dalam array JSON

$mobil = array("Volvo", "BMW", "Toyota");

echo json_encode($mobil);
?>

Jalankan Contoh »



PHP - json_decode()

Fungsi json_decode() digunakan untuk mendekode objek JSON menjadi objek PHP atau array asosiatif

Contoh

Contoh ini menerjemahkan data JSON menjadi objek PHP

$jsonobj = '{"Peter". 35,"Ben". 37,"Jo". 43}';

var_dump(json_decode($jsonobj));
?>

Jalankan Contoh »

Fungsi json_decode() mengembalikan objek secara default. Fungsi json_decode() memiliki parameter kedua, dan ketika disetel ke true, objek JSON didekode menjadi array asosiatif

Contoh

Contoh ini menerjemahkan data JSON menjadi array asosiatif PHP

$jsonobj = '{"Peter". 35,"Ben". 37,"Jo". 43}';

var_dump(json_decode($jsonobj, true));
?>

Jalankan Contoh »


PHP - Mengakses Nilai yang Didekodekan

Berikut adalah dua contoh cara mengakses nilai yang didekodekan dari objek dan dari array asosiatif

Jika Anda bekerja dengan JSON (JavaScript Object Notation) dan perlu mengubah string JSON menjadi array atau objek dan mengulanginya atau sebaliknya, ambil array atau objek dan ubah menjadi string JSON untuk dikembalikan, keduanya bisa

Postingan ini saya bagi menjadi tiga bagian

Mengonversi String JSON ke Array atau Objek PHP

PHP >= 5. 2. 0 menampilkan fungsi,

<?php
  // Loop through Array
  $someArray = ...; // Replace .. with your PHP Array
  foreach ($someArray as $key => $value) {
    echo $value["name"] . ", " . $value["gender"] . "<br>";
  }

  // Loop through Object
  $someObject = ...; // Replace .. with your PHP Object
  foreach($someObject as $key => $value) {
    echo $value->name . ", " . $value->gender . "<br>";
  }
?>
_1, yang menerjemahkan string JSON menjadi variabel PHP. Secara default mengembalikan objek. Parameter kedua menerima boolean yang ketika ditetapkan sebagai
<?php
  // Loop through Array
  $someArray = ...; // Replace .. with your PHP Array
  foreach ($someArray as $key => $value) {
    echo $value["name"] . ", " . $value["gender"] . "<br>";
  }

  // Loop through Object
  $someObject = ...; // Replace .. with your PHP Object
  foreach($someObject as $key => $value) {
    echo $value->name . ", " . $value->gender . "<br>";
  }
?>
2, memberitahukannya untuk mengembalikan objek sebagai array asosiatif. Anda dapat mempelajari lebih lanjut tentang fungsi
<?php
  // Loop through Array
  $someArray = ...; // Replace .. with your PHP Array
  foreach ($someArray as $key => $value) {
    echo $value["name"] . ", " . $value["gender"] . "<br>";
  }

  // Loop through Object
  $someObject = ...; // Replace .. with your PHP Object
  foreach($someObject as $key => $value) {
    echo $value->name . ", " . $value->gender . "<br>";
  }
?>
_1 dari dokumentasi PHP

<?php
  // JSON string
  $someJSON = '[{"name":"Jonathan Suh","gender":"male"},{"name":"William Philbin","gender":"male"},{"name":"Allison McKinnery","gender":"female"}]';

  // Convert JSON string to Array
  $someArray = json_decode($someJSON, true);
  print_r($someArray);        // Dump all data of the Array
  echo $someArray[0]["name"]; // Access Array data

  // Convert JSON string to Object
  $someObject = json_decode($someJSON);
  print_r($someObject);      // Dump all data of the Object
  echo $someObject[0]->name; // Access Object data
?>

Loop melalui PHP Array atau Objek

Loop melalui array atau objek PHP dengan

<?php
  // Loop through Array
  $someArray = ...; // Replace .. with your PHP Array
  foreach ($someArray as $key => $value) {
    echo $value["name"] . ", " . $value["gender"] . "<br>";
  }

  // Loop through Object
  $someObject = ...; // Replace .. with your PHP Object
  foreach($someObject as $key => $value) {
    echo $value->name . ", " . $value->gender . "<br>";
  }
?>
4 loop

<?php
  // Loop through Array
  $someArray = ...; // Replace .. with your PHP Array
  foreach ($someArray as $key => $value) {
    echo $value["name"] . ", " . $value["gender"] . "<br>";
  }

  // Loop through Object
  $someObject = ...; // Replace .. with your PHP Object
  foreach($someObject as $key => $value) {
    echo $value->name . ", " . $value->gender . "<br>";
  }
?>

Perhatikan perbedaan dalam mengakses nilai array vs objek

Mengonversi Array atau Objek PHP ke String JSON

PHP juga menampilkan fungsi

<?php
  // Loop through Array
  $someArray = ...; // Replace .. with your PHP Array
  foreach ($someArray as $key => $value) {
    echo $value["name"] . ", " . $value["gender"] . "<br>";
  }

  // Loop through Object
  $someObject = ...; // Replace .. with your PHP Object
  foreach($someObject as $key => $value) {
    echo $value->name . ", " . $value->gender . "<br>";
  }
?>
_5 untuk mengubah array atau objek menjadi string. Baca lebih lanjut tentang fungsi
<?php
  // Loop through Array
  $someArray = ...; // Replace .. with your PHP Array
  foreach ($someArray as $key => $value) {
    echo $value["name"] . ", " . $value["gender"] . "<br>";
  }

  // Loop through Object
  $someObject = ...; // Replace .. with your PHP Object
  foreach($someObject as $key => $value) {
    echo $value->name . ", " . $value->gender . "<br>";
  }
?>
_5 dari dokumentasi PHP

<?php
  // Array
  $someArray = [
    [
      "name"   => "Jonathan Suh",
      "gender" => "male"
    ],
    [
      "name"   => "William Philbin",
      "gender" => "male"
    ],
    [
      "name"   => "Allison McKinnery",
      "gender" => "female"
    ]
  ];

  // Convert Array to JSON String
  $someJSON = json_encode($someArray);
  echo $someJSON;
?>
_

Perhatikan bahwa saya menggunakan sintaks array pendek yang ditampilkan di PHP 5. 4+

<?php
  $array = array(
    "foo" => "bar",
    "bar" => "foo"
  );

  // as of PHP 5.4
  $array = [
    "foo" => "bar",
    "bar" => "foo"
  ];
?>
_


Mengonversi String JSON ke Objek JavaScript

JavaScript memiliki metode

<?php
  // Loop through Array
  $someArray = ...; // Replace .. with your PHP Array
  foreach ($someArray as $key => $value) {
    echo $value["name"] . ", " . $value["gender"] . "<br>";
  }

  // Loop through Object
  $someObject = ...; // Replace .. with your PHP Object
  foreach($someObject as $key => $value) {
    echo $value->name . ", " . $value->gender . "<br>";
  }
?>
_7 bawaan yang mem-parsing string JSON dan mengembalikan objek

<script>
  // Convert JSON String to JavaScript Object
  var JSONString = '[{"name":"Jonathan Suh","gender":"male"},{"name":"William Philbin","gender":"male"},{"name":"Allison McKinnery","gender":"female"}]';

  var JSONObject = JSON.parse(JSONString);
  console.log(JSONObject);      // Dump all data of the Object in the console
  alert(JSONObject[0]["name"]); // Access Object data
</script>

<?php
  // Loop through Array
  $someArray = ...; // Replace .. with your PHP Array
  foreach ($someArray as $key => $value) {
    echo $value["name"] . ", " . $value["gender"] . "<br>";
  }

  // Loop through Object
  $someObject = ...; // Replace .. with your PHP Object
  foreach($someObject as $key => $value) {
    echo $value->name . ", " . $value->gender . "<br>";
  }
?>
7 sangat didukung, tetapi ada browser yang tidak mendukungnya (i. e. <= YAITU 7. Informasi lebih lanjut di )

jQuery 1. x memiliki metode

<?php
  // Loop through Array
  $someArray = ...; // Replace .. with your PHP Array
  foreach ($someArray as $key => $value) {
    echo $value["name"] . ", " . $value["gender"] . "<br>";
  }

  // Loop through Object
  $someObject = ...; // Replace .. with your PHP Object
  foreach($someObject as $key => $value) {
    echo $value->name . ", " . $value->gender . "<br>";
  }
?>
_9 yang akan mengisi celah untuk browser tersebut jika Anda perlu mendukungnya. Anda juga dapat menggunakan perpustakaan JSON-js sebagai polyfill

<script>
  // Convert JSON String to JavaScript Object with jQuery
  var JSONString = "..."; // Replace .. with your JSON String

  var JSONObject = $.parseJSON(JSONString);
  console.log(JSONObject);      // Dump all data of the Object in the console
  alert(JSONObject[0]["name"]); // Access Object data
</script>

Loop melalui Objek JavaScript

Anda kemudian dapat mengulang melalui objek JavaScript menggunakan

<?php
  // Array
  $someArray = [
    [
      "name"   => "Jonathan Suh",
      "gender" => "male"
    ],
    [
      "name"   => "William Philbin",
      "gender" => "male"
    ],
    [
      "name"   => "Allison McKinnery",
      "gender" => "female"
    ]
  ];

  // Convert Array to JSON String
  $someJSON = json_encode($someArray);
  echo $someJSON;
?>
0 loop

<script>
  // Loop through Object
  var JSONObject = ...; // Replace .. with your JavaScript Object

  for (var key in JSONObject) {
    if (JSONObject.hasOwnProperty(key)) {
      console.log(JSONObject[key]["name"] + ", " + JSONObject[key]["gender"]);
    }
  }
</script>

Mengonversi Objek JavaScript ke String JSON

JavaScript memiliki metode

<?php
  // Array
  $someArray = [
    [
      "name"   => "Jonathan Suh",
      "gender" => "male"
    ],
    [
      "name"   => "William Philbin",
      "gender" => "male"
    ],
    [
      "name"   => "Allison McKinnery",
      "gender" => "female"
    ]
  ];

  // Convert Array to JSON String
  $someJSON = json_encode($someArray);
  echo $someJSON;
?>
_1 untuk mengonversi nilai menjadi string JSON

<script>
  var JSONObject = [
    {
      "name": "Jonathan Suh",
      "gender": "male"
    },
    {
      "name": "William Philbin",
      "gender": "male"
    },
    {
      "name": "Allison McKinnery",
      "gender": "female"
    }
  ];

  var JSONString = JSON.stringify(JSONObject);
  alert(JSONString);
</script>

Seperti

<?php
  // Array
  $someArray = [
    [
      "name"   => "Jonathan Suh",
      "gender" => "male"
    ],
    [
      "name"   => "William Philbin",
      "gender" => "male"
    ],
    [
      "name"   => "Allison McKinnery",
      "gender" => "female"
    ]
  ];

  // Convert Array to JSON String
  $someJSON = json_encode($someArray);
  echo $someJSON;
?>
_2,
<?php
  // Array
  $someArray = [
    [
      "name"   => "Jonathan Suh",
      "gender" => "male"
    ],
    [
      "name"   => "William Philbin",
      "gender" => "male"
    ],
    [
      "name"   => "Allison McKinnery",
      "gender" => "female"
    ]
  ];

  // Convert Array to JSON String
  $someJSON = json_encode($someArray);
  echo $someJSON;
?>
1 tidak didukung di browser dinosaurus seperti <= IE 7. Anda juga dapat menggunakan pustaka JSON-js untuk mengisi
<?php
  // Array
  $someArray = [
    [
      "name"   => "Jonathan Suh",
      "gender" => "male"
    ],
    [
      "name"   => "William Philbin",
      "gender" => "male"
    ],
    [
      "name"   => "Allison McKinnery",
      "gender" => "female"
    ]
  ];

  // Convert Array to JSON String
  $someJSON = json_encode($someArray);
  echo $someJSON;
?>
1


Anda dapat menggabungkan metode di atas untuk membuat implementasi yang kuat dan dinamis di situs web atau aplikasi Anda

Katakanlah Anda ingin mendapatkan informasi dari database, mengembalikan data dengan aman sebagai JSON, dan memutarnya secara dinamis, Anda dapat melakukannya dengan sedikit PHP dan JavaScript dengan Ajax

Dapatkan JSON Secara Dinamis melalui Ajax dan Loop Melalui JSON

Mari kita asumsikan struktur database Anda terlihat seperti berikut

Table: people
┌────┬────────────────────┬─────────┐
| id | name               | gender  |
├────┼────────────────────┼─────────┤
| 0  | Jonathan Suh       | male    |
| 1  | William Philbin    | male    |
| 2  | Allison McKinnery  | female  |
| 3  | Becky Borgster     | female  |
| 4  | Victoria Einsteen  | female  |
└────┴────────────────────┴─────────┘

Dan Anda ingin secara dinamis mendapatkan daftar orang dari database berdasarkan jenis kelamin, seperti ini

Perulangan array json di php

Mari kita mulai dengan file front-end

<?php
  // Array
  $someArray = [
    [
      "name"   => "Jonathan Suh",
      "gender" => "male"
    ],
    [
      "name"   => "William Philbin",
      "gender" => "male"
    ],
    [
      "name"   => "Allison McKinnery",
      "gender" => "female"
    ]
  ];

  // Convert Array to JSON String
  $someJSON = json_encode($someArray);
  echo $someJSON;
?>
5 yang akan memiliki pilihan dropdown dengan jenis kelamin untuk dipilih, tabel untuk menampilkan hasil, dan skrip untuk menangani Ajax. JavaScript ditulis dalam jQuery

<select id="gender" name="gender">
  <option value="male">Male</option>
  <option value="female">Female</option>
</select>

<table id="people" border="1">
  <thead>
    <th>Name</th>
    <th>Gender</th>
  </thead>
  <tbody>

  </tbody>
</table>

<script src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
<script>
$("#gender").on("change", function() {
  $.ajax({
    type: "POST",
    data: {
      "gender": $("#gender").val()
    },
    url: "response.php",
    dataType: "json",
    success: function(JSONObject) {
      var peopleHTML = "";

      // Loop through Object and create peopleHTML
      for (var key in JSONObject) {
        if (JSONObject.hasOwnProperty(key)) {
          peopleHTML += "<tr>";
            peopleHTML += "<td>" + JSONObject[key]["name"] + "</td>";
            peopleHTML += "<td>" + JSONObject[key]["gender"] + "</td>";
          peopleHTML += "</tr>";
        }
      }

      // Replace table’s tbody html with peopleHTML
      $("#people tbody").html(peopleHTML);
    }
  });
});
</script>

Sekarang mari kita buat file

<?php
  // Array
  $someArray = [
    [
      "name"   => "Jonathan Suh",
      "gender" => "male"
    ],
    [
      "name"   => "William Philbin",
      "gender" => "male"
    ],
    [
      "name"   => "Allison McKinnery",
      "gender" => "female"
    ]
  ];

  // Convert Array to JSON String
  $someJSON = json_encode($someArray);
  echo $someJSON;
?>
_6 untuk menangani logika back-end untuk mendapatkan informasi dari database dan mengembalikan hasilnya sebagai string JSON

<?php
  // Loop through Array
  $someArray = ...; // Replace .. with your PHP Array
  foreach ($someArray as $key => $value) {
    echo $value["name"] . ", " . $value["gender"] . "<br>";
  }

  // Loop through Object
  $someObject = ...; // Replace .. with your PHP Object
  foreach($someObject as $key => $value) {
    echo $value->name . ", " . $value->gender . "<br>";
  }
?>
0

Untuk mendapatkan contoh interaksi PHP-JSON-JavaScript/jQuery-Ajax yang lebih mendalam dan lebih baik, baca jQuery Ajax Call to PHP Script with JSON Return post

Bagaimana cara mengulang objek JSON di PHP?

PHP dan JSON .
Fungsi json_encode() digunakan untuk menyandikan nilai ke format JSON
Fungsi json_decode() digunakan untuk mendekode objek JSON menjadi objek PHP atau array asosiatif
Fungsi json_decode() mengembalikan objek secara default. .
Anda juga dapat mengulang nilai dengan loop foreach()

Bisakah kita menggunakan for loop untuk array di PHP?

Perulangan foreach PHP . The foreach loop works only on arrays, and is used to loop through each key/value pair in an array.

Bagaimana cara mem-parsing beberapa array JSON di PHP?

php $read = file_get_contents("report. json"); $json = json_decode($read, true); foreach($json as $key => $val){ if(is_array($val)){ echo "$key :
"; foreach($key as $k => $v){ echo "$k => $v
"; } } else { echo "$key => $val
"; } } ?>

Bagaimana cara menyimpan respons JSON dalam array di PHP?

Untuk mengonversi string data JSON ke larik PHP, Anda dapat menggunakan fungsi json_decode($json) . Fungsi json_decode() menerima string JSON sebagai parameter pertama dan beberapa parameter tambahan untuk mengontrol proses konversi JSON ke array PHP.