如何在 PHP 中把一個陣列轉換為一個物件
Minahil Noor
2023年1月30日
2020年9月26日
本文介紹了在 PHP 中把陣列轉換為物件的方法,包括型別轉換、json_decode(函式)和 json_encode(函式)。
- 使用型別轉換
- 使用
json_decode
和json_encode()
函式
在 PHP 中使用型別轉換將一個陣列轉換為一個物件
型別轉換有助於轉換一個變數的資料型別。我們可以使用型別轉換將一個整數轉換為浮點、字串等。現在,我們將使用型別轉換在 PHP 中把一個陣列轉換為一個物件。將陣列轉換為物件的正確方法如下。
$variableName = (object)$arrayName;
下面的程式顯示了我們如何使用型別轉換法將一個陣列轉換為一個物件。
<?php
$array = array("Rose",
"Lili",
"",
"Jasmine",
"Hibiscus",
"Tulip",
"Sun Flower",
"",
"Daffodil",
"Daisy");
$object= (object)$array;
echo("The object is \n");
var_dump($object);
?>
輸出:
The object is
object(stdClass)#1 (10) {
[0]=>
string(4) "Rose"
[1]=>
string(4) "Lili"
[2]=>
string(0) ""
[3]=>
string(7) "Jasmine"
[4]=>
string(8) "Hibiscus"
[5]=>
string(5) "Tulip"
[6]=>
string(10) "Sun Flower"
[7]=>
string(0) ""
[8]=>
string(8) "Daffodil"
[9]=>
string(5) "Daisy"
}
在 PHP 中使用 json_encode()
和 json_decode()
函式將一個陣列轉換為一個物件
在 PHP 中,我們可以使用 json_encode()
和 json_decode()
函式將一個陣列轉換為一個物件。json_encode()
函式將陣列轉換為 JSON 字串。然後我們將使用 json_decode()
函式將這個字串轉換為物件。
正確使用 json_encode()
函式的語法如下。
json_encode($variable, $option, $depth)
函式 json_encode()
接受三個引數。其詳細引數如下
引數 | 說明 | |
---|---|---|
$variable |
強制 | 它是我們要轉換為 JSON 字串的值 |
$option |
可選 | 它是由多個常陣列成的位掩碼。你可以檢查這些常量這裡。 |
$depth |
可選 | 這是深度,應大於零。 |
正確使用 json_decode()
函式的語法如下。
json_decode($jsonString, $assoc, $depth, $options)
函式 json_decode()
接受四個引數。其詳細引數如下
引數 | 說明 | |
---|---|---|
$jsonString |
強制 | 它是我們要轉換為物件的 JSON 字串 |
$assoc |
可選 | 它是一個布林變數。如果設定為 TRUE,則以關聯陣列的形式返回物件。 |
$depth |
可選 | 這是深度,應該大於零。 |
$options |
可選 | 它是 JSON_OBJECT_AS_ARRAY、JSON_BIGINT_AS_STRING、、JSON_THROW_ON_ERROR 的位掩碼 |
使用這兩個函式將陣列轉換為物件的程式如下。
<?php
$array = array("Rose","Lili","Jasmine","Hibiscus","Tulip","Sun Flower","Daffodil","Daisy");
$object = json_encode($array);
$object1 = json_decode($object);
echo("The object is:\n");
var_dump($object1);
?>
輸出:
The object is:
array(8) {
[0]=>
string(4) "Rose"
[1]=>
string(4) "Lili"
[2]=>
string(7) "Jasmine"
[3]=>
string(8) "Hibiscus"
[4]=>
string(5) "Tulip"
[5]=>
string(10) "Sun Flower"
[6]=>
string(8) "Daffodil"
[7]=>
string(5) "Daisy"
}