ホームページ  >  記事  >  バックエンド開発  >  区切り文字で区切られた文字列をループなしで連想配列に変換するにはどうすればよいですか?

区切り文字で区切られた文字列をループなしで連想配列に変換するにはどうすればよいですか?

DDD
DDDオリジナル
2024-10-22 06:27:03989ブラウズ

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

区切り文字列をループなしで連想配列に変換する

ここでのタスクは、次のように区切られたキーと値のペアを含む文字列を変換することです。区切り文字 (「1-350,9-390.99」など) を連想配列に追加します。これはループでも実現できますが、配列関数のみを使用してこれを実現することも可能です。

1 つのアプローチでは、array_chunk 関数を利用して文字列を 2 つの要素 (キーと値) のチャンクに分割します。 。この後に array_column が続き、キーと値を別々の配列に抽出します。最後に、array_combine を使用して、これらの抽出された配列を目的の連想配列に結合します。

これは PHP 5.5 実装です:

<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>

これにより、次の連想配列が生成されます。 :

Array
(
    [1] => 350
    [9] => 390.99
)

このアプローチでは、明示的なループの必要性がなくなるだけでなく、ネイティブ PHP 関数を利用してパフォーマンスとコードの可読性が向上します。

以上が区切り文字で区切られた文字列をループなしで連想配列に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。