0 レビュー
3 回答
php-達成するためのエレガントな方法は何ですか:explode->some_funcを適用->foreachなしでimplode?
区切り文字で区切られた値の文字列があり、文字列内の各値に対してsome_funcを実行する必要があります。これを達成するための最もコンパクトでエレガントな方法は何ですか?現在使用するコードは次のとおりです。
$delim = ',';
$source_array = explode($delim, $source_string);
$destination_array = array();
foreach ($source_array as $val) {
$destination_array[] = some_function($val);
}
$destination_string = implode($delim, $destination_array);
順序付けは重要ではありませんが、保存しておくと便利です。
ありがとう!
わからない
0
レビュー
答え :
解決策:
探しているのはarray_map
:
$ delim ='、';
$ source_array = explode($ delim、$ source_string);
$ destination_array = array_map('some_function'、source_array)
$ destination_string = implode($ delim、$ destination_array);
わからない
0
レビュー
答え :
解決策:
正規表現/REGEXを試してください。または、アルゴリズムが重い場合は、Perlでスクリプトを作成してこれらすべてを処理し、PHPから呼び出します。物事が簡単になります。
そうですね、誰かがPythonまたは別のスクリプト言語を教えてくれるでしょうが、それは私の2セントです。
わからない
0
レビュー
答え :
解決策:
array_walk
を使用できます。
このようにして、配列の各エントリに関数を適用できます。したがって、コードは次のようになります。
$ delim ='、';
$ components = explode($ delim、$ source_string);
array_walk($ components、'some_function');
$ destination_string = implode($ delim、$ components);
array_map
と比較すると、新しい配列は生成されませんが、既存の配列で機能します...しかし、これは、巨大な配列で作業する場合にのみ重要になります(記憶を考える)。もちろん、 some_function
...
わからない
同様の質問
私たちのウェブサイトで同様の質問で答えを見つけてください。