首頁 >後端開發 >php教程 >如何將 PHP `print_r()` 字串輸出轉換回陣列?

如何將 PHP `print_r()` 字串輸出轉換回陣列?

DDD
DDD原創
2024-12-02 19:16:16845瀏覽

How to Convert a PHP `print_r()` String Output Back into an Array?

如何將陣列的字串表示形式轉換回數組

在PHP 中,當您使用print_r() 列印陣列時,它將其轉換為可視化格式的字串。雖然對於調試很有用,但此字串格式不能直接轉換回數組。但是,透過一些自訂解析邏輯,可以重新建立原始數組。

開發了一個自訂函數 text_to_array() 來處理此轉換。它的操作如下:

解析字串:

  • 函數首先檢查給定字串是否以「Array」開頭,表示它代表一個陣列。
  • 擷取括號內的陣列內容。
  • 分隔符號 ([, ]、=>)被替換為佔位符(#!# 和 #?#)以方便解析。
  • 修改後的陣列內容將在 #!# 分隔符號處拆分為各個欄位。

建立新數組:

  • 對於每個字段,它使用 #?# 分隔符號分隔鍵和值。
  • 如果鍵不為空,它將鍵值對加到新數組。

用法範例:

考慮以下內容array:

$a = ['foo' => 'fooMe'];

使用print_r() 轉換為字串後,您將得到:

Array ( [foo] => fooMe )

將此字串傳遞給text_to_array() 函數將得到原始數組:

$b = text_to_array('Array ( [foo] => fooMe )');
print_r($b);

此輸出:

Array
(
    [foo] => fooMe
)

透過實作此自訂解析邏輯,您可以從列印的字串表示形式重新建立數組,即使在調試後也能恢復數組功能。

以上是如何將 PHP `print_r()` 字串輸出轉換回陣列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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