首頁 >後端開發 >PHP問題 >php 數組去除對象

php 數組去除對象

PHPz
PHPz原創
2023-05-07 17:15:10561瀏覽

在PHP程式設計中,陣列和物件是最常​​用的資料型別之一。而有時我們需要將一個包含物件的數組轉換為只包含原始資料的數組,這時就需要進行數組去除物件的操作。本文將介紹如何在PHP中進行陣列去除物件的操作。

  1. 使用array_map函數

array_map函數是PHP中的函數,它可以對陣列中的每個元素套用函數,然後傳回一個新的陣列。對於含有物件的數組,我們可以使用array_map函數應用一個函數來將每個物件轉換為原始的資料類型。例如:

function object_to_array($obj) {
    return (array) $obj;
}

$arr = array(
    (object)array("name"=>"Tom","age"=>18),
    (object)array("name"=>"Jerry","age"=>20),
);

$new_arr = array_map("object_to_array",$arr);
print_r($new_arr);

在上述程式碼中,我們定義了一個object_to_array函數,它會將一個物件轉換為陣列。然後,我們使用array_map函數對原始的陣列$arr應用這個函數,傳回一個新的陣列並儲存在$new_arr變數中。最後,我們使用print_r函數輸出轉換後的陣列。

  1. 使用json_decode和json_encode函數

#PHP中的json_decode函數可以將JSON格式的資料轉換為PHP陣列或物件。而json_encode函數可以將PHP陣列或物件轉換為JSON格式的資料。因此,我們可以先使用json_encode函數將含有物件的陣列轉換為JSON格式的數據,再使用json_decode函數將其轉換為只包含原始資料類型的陣列。例如:

$arr = array(
    (object)array("name"=>"Tom","age"=>18),
    (object)array("name"=>"Jerry","age"=>20),
);

$json = json_encode($arr);
$new_arr = json_decode($json,true);

print_r($new_arr);

上述程式碼中,我們先使用json_encode函數將陣列$arr轉換為JSON格式的資料並儲存在$json變數中,然後使用json_decode函數將其轉換為數組,並儲存在$new_arr變數中。最後,我們使用print_r函數輸出轉換後的陣列。

  1. 使用迭代器

PHP中的ArrayIterator類別可以將陣列轉換為迭代器,然後我們就可以使用方法getArrayCopy 將其轉換為只含原始資料類型的陣列。例如:

$arr = array(
    (object)array("name"=>"Tom","age"=>18),
    (object)array("name"=>"Jerry","age"=>20),
);

$iterator = new ArrayIterator($arr);
$new_arr = $iterator->getArrayCopy();

print_r($new_arr);

在上述程式碼中,我們建立了一個ArrayIterator類別的實例$iterator,並將陣列$arr傳遞給它。然後我們使用getArrayCopy方法將其轉換為原始資料類型的數組,並將其儲存在$new_arr變數中。最後,我們使用print_r函數輸出轉換後的陣列。

綜上所述,我們可以使用以上三種方法來進行PHP中的陣列去除物件的操作。在具體應用中,我們可以根據實際需求選擇合適的方法。

以上是php 數組去除對象的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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