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

ループを使わずに区切り文字列を連想配列に効率的に変換するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-22 06:23:31837ブラウズ

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 を使用してチャンクの 1 列目と 2 列目を抽出します。これらはそれぞれ連想配列のキーと値に対応します。最後に、array_combine を使用して連想配列が作成されます。

結果は、キーがチャンクの最初の値 (例: "1" と "9") であり、値がチャンクの 2 番目の値 (「350」や「390.99」など)。このアプローチではループの必要性がなくなり、区切り文字列を連想配列に変換するための効率的かつ簡潔なソリューションになります。

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

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