首頁 後端開發 PHP問題 php把數組轉換成json數組

php把數組轉換成json數組

Apr 14, 2023 pm 07:01 PM

PHP是一種很流行的伺服器端腳本語言,用於開發Web應用程式。在開發Web應用程式的過程中,經常需要將資料以JSON格式傳回前端。而在PHP中,原始資料型別轉換為JSON非常方便。本文將介紹如何在PHP中把陣列轉換成JSON陣列。

  1. 使用json_encode()函數
    在PHP中,使用json_encode()函數可以將陣列轉換為JSON格式。此函數接收一個參數,即要轉換的陣列,傳回值是JSON格式的字串。

以下是使用json_encode()函數將陣列轉換成JSON陣列的範例程式碼:

<code><?php
$arr = array('name' => '张三', 'age' => 20, 'gender' => '男');
echo json_encode($arr);
?></code>
登入後複製

執行以上程式碼會輸出如下結果:

<code>{"name":"\u5f20\u4e09","age":20,"gender":"\u7537"}</code>
登入後複製

可以看到,以上程式碼已經成功將陣列轉換成了JSON陣列。 json_encode()函數把所有的Unicode字元進行了轉義,以確保產生的JSON資料是合法的。

  1. 處理中文字符
    在實際應用中,經常需要處理中文字符,而PHP的json_encode()函數在處理中文字符時,會將中文字符轉換成Unicode字符,這會導致JSON資料中出現一些看起來不友善的字元。

為了解決這個問題,可以在json_encode()函數中加入參數JSON_UNESCAPED_UNICODE。此參數告訴json_encode()函數不要對中文字元進行轉義,從而保留原始中文字元。

下面是使用JSON_UNESCAPED_UNICODE參數將數組轉換成JSON數組的範例程式碼:

<code><?php
$arr = array('name' => '张三', 'age' => 20, 'gender' => '男');
echo json_encode($arr, JSON_UNESCAPED_UNICODE);
?></code>
登入後複製

運行以上程式碼會輸出如下結果:

<code>{"name":"张三","age":20,"gender":"男"}</code>
登入後複製

可以看到,使用JSON_UNESCAPED_UNICODE參數之後,JSON數組中的中文字元已經被編碼成了原始中文字元。

  1. 處理多維數組
    在實際應用中,有時候需要將多維數組轉換成JSON數組。

於是我們需要使用一個遞迴函數,先判斷當前的值是不是數組,如果是數組那麼就遞歸呼叫函數,知道當前值不是數組為止。

下面是將多維數組轉換成JSON數組的範例程式碼:

<code><?php
$arr = array(
    array('name' => '张三', 'age' => 20, 'gender' => '男'),
    array('name' => '李四', 'age' => 22, 'gender' => '女'),
    array('name' => '王五', 'age' => 24, 'gender' => '男')
);
echo json_encode($arr, JSON_UNESCAPED_UNICODE);

function array_to_json($array) {
    if (!is_array($array)) {
        return null;
    }
    $json = '[';
    foreach ($array as $key => $value) {
        if (is_array($value)) {
            $value = array_to_json($value);
        } else {
            $value = json_encode($value, JSON_UNESCAPED_UNICODE);
        }
        if ($json != '[') {
            $json .= ',';
        }
        $json .= $value;
    }
    $json .= ']';
    return $json;
}

$new_arr = array(
    'name' => '张三',
    'info' => array(
        'age' => 20,
        'address' => array(
            'province' => '广东省',
            'city' => '深圳市'
        )
    )
);
echo array_to_json($new_arr);
?></code>
登入後複製

執行以上程式碼,會輸出如下結果:

<code>[{"name":"张三","age":20,"gender":"男"},{"name":"李四","age":22,"gender":"女"},{"name":"王五","age":24,"gender":"男"}]
{"name":"张三","info":{"age":20,"address":{"province":"\u5e7f\u4e1c\u7701","city":"\u6df1\u5733\u5e02"}}}</code>
登入後複製

可以看到,透過array_to_json( )函數,成功將多維數組轉換成了JSON數組。

以上是php把數組轉換成json數組的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1664
14
CakePHP 教程
1423
52
Laravel 教程
1321
25
PHP教程
1269
29
C# 教程
1249
24