Bagaimana untuk menukar tatasusunan JSON kepada rentetan dalam php

PHPz
Lepaskan: 2023-04-20 14:43:50
asal
744 orang telah melayarinya

Dalam pengaturcaraan PHP, data dalam format JSON sering digunakan dan menukar tatasusunan JSON kepada rentetan adalah masalah biasa. Di bawah ini kami akan memperkenalkan cara menukar tatasusunan JSON kepada rentetan dalam PHP.

PHP menyediakan fungsi yang sangat mudah json_encode() yang boleh menukar tatasusunan PHP kepada rentetan format JSON. Walau bagaimanapun, apabila tatasusunan PHP mengandungi tatasusunan berbilang dimensi, fungsi json_encode() tidak dapat memuaskan hati kami. Oleh itu, kita perlu menggunakan fungsi buatan sendiri.

Berikut ialah fungsi untuk menukar tatasusunan JSON kepada rentetan:

function json_arr2string($arr, $indent=0){
  $str = "";
  $indstr = "";
  for ($i=0; $i<$indent; $i++){
    $indstr .= "    ";
  }
  foreach ($arr as $key => $val){
    if (is_array($val)){
      $str .= $indstr . '"' . $key . '": {' . "\n" . json_arr2string($val, $indent+1) . $indstr . "},\n";
    } else{
      $str .= $indstr . '"' . $key . '": "' . $val . '",' . "\n";
    }
  }
  return "{" . "\n" . substr($str, 0, -2) . "\n" . $indstr . "}";
}
Salin selepas log masuk

Fungsi ini mempunyai dua parameter. Parameter pertama $arr ialah tatasusunan JSON untuk ditukar kepada rentetan Parameter kedua, dengan nilai lalai 0, digunakan untuk memproses tatasusunan berbilang dimensi. Fungsi

mula-mula mencipta pembolehubah rentetan kosong $str dan pembolehubah rentetan yang digunakan untuk lekukan $indstr, dan kemudian menyemak setiap elemen dalam tatasusunan. Proses tatasusunan berbilang dimensi dengan memanggil dirinya secara rekursif sehingga semua elemen telah diproses.

Akhir sekali, padamkan dua aksara terakhir pembolehubah rentetan $str (iaitu, padamkan koma terakhir dan ruang bersebelahan dengannya), dan tambah pendakap kerinting dan baris baharu untuk mengembalikan rentetan akhir.

Berikut ialah contoh yang menunjukkan cara menggunakan fungsi di atas untuk menukar tatasusunan JSON yang mengandungi tatasusunan berbilang dimensi kepada rentetan:

$json_arr = array(
    "name" => "PHP",
    "version" => "7.3.5",
    "extension" => array(
        "json" => "enabled",
        "curl" => "enabled",
        "pdo" => "enabled"
    ),
    "framework" => array(
        "name" => "Laravel",
        "version" => "5.8.18"
    )
);

$json_str = json_arr2string($json_arr);

echo $json_str;
Salin selepas log masuk

Kod di atas akan mengeluarkan keputusan berikut:

{
    "name": "PHP",
    "version": "7.3.5",
    "extension": {
        "json": "enabled",
        "curl": "enabled",
        "pdo": "enabled"
    },
    "framework": {
        "name": "Laravel",
        "version": "5.8.18"
    }
}
Salin selepas log masuk

Ini ialah rentetan dalam format JSON, yang menukar tatasusunan JSON asal kepada rentetan.

Ringkasan: Menggunakan fungsi buatan sendiri di atas json_arr2string() boleh menukar tatasusunan JSON yang mengandungi tatasusunan berbilang dimensi kepada rentetan dengan mudah. Jika anda belum menemui tatasusunan berbilang dimensi dalam pengaturcaraan PHP, fungsi json_encode() sudah memadai.

Atas ialah kandungan terperinci Bagaimana untuk menukar tatasusunan JSON kepada rentetan dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan