首頁  >  文章  >  後端開發  >  如何有效率地將定界字串轉換為無循環的關聯數組?

如何有效率地將定界字串轉換為無循環的關聯數組?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-10-22 06:23:31830瀏覽

How to Efficiently Convert a Delimited String into an Associative Array without Loops?

有效地將字串分解為關聯數組

將字串轉換為關聯數組是程式設計中的常見任務。然而,在不使用循環的情況下這樣做可能具有挑戰性。讓我們探討一下將「1-350,9-390.99」這樣的字串分解為關聯數組的問題的解決方案:

PHP 5.5 及更高版本提供了一種巧妙的方法來使用array_chunk和array_column 的組合來實現此目的。它的工作原理如下:

<code class="php">$input  = '1-350,9-390.99';

$chunks = array_chunk(preg_split('/[-,]/', $input), 2);
$result = array_combine(array_column($chunks, 0), array_column($chunks, 1));

print_r($result);</code>

此程式碼首先使用 preg_split 函數將輸入字串拆分為區塊,並用破折號 (-) 和逗號 (,) 分隔字串。然後,它使用 array_column 提取區塊的第一列和第二列,它們分別對應於關聯數組的鍵和值。最後,使用 array_combine 建立關聯數組。

結果是一個關聯數組,其中鍵是區塊的第一個值(例如「1」和「9」),值是區塊的第一個值(例如「1」和「9」) 。區塊的第二值(例如,“350”和“390.99”)。這種方法消除了對循環的需要,使其成為將分隔字串轉換為關聯數組的高效且簡潔的解決方案。

以上是如何有效率地將定界字串轉換為無循環的關聯數組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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