2

私は自動化されたタスクのために取り組んでいるスクリプトを持っているので、とにかく一度しか使用されないので、きれいなコードについてはあまり心配していません.

スクリプトはフラット ファイルから読み取り、情報を配列に格納します。この配列は、後でデータベースから何かを読み取るために使用されます。

ただし、数値データのみが必要なので、preg_replace() とコンマを使用しました。私のコードは次のとおりです。

これらは、ループを使用してフラット ファイルの値から読み取られます。

$store = array();
$store[] = 111;
$store[] = 2;
$store[] = 4;
$store[] = 55;
$store[] = 66;
$store[] = 'Kilory';
$store[] = 9090;

$theList[$i] = preg_replace( '/[^0-9,]/u', '', implode( ',', $store ) );
unset( $store );

これにより得られる結果は 0,2,4,55,66,,9090 です。mysql IN() ステートメントで使用するために情報を使用しようとすると、2 つのコンマが隣り合っているため、エラーが返されます。隣同士の重複を削除する最良の方法は何ですか?

ありがとうございました!

4

3 に答える 3

3

で削除できる見出しと末尾のコンマを含む重複したコンマ$string = trim(preg_replace('#,{2,}#', ',', $string), ',');

于 2013-04-10T15:44:27.523 に答える
1

PHP は、その目的のためにフィルター関数を提供します。

$store = array();
$store[] = 111;
$store[] = 2;
$store[] = 4;
$store[] = 55;
$store[] = 66;
$store[] = 'Kilory';
$store[] = 9090;

$theList[$i] = implode(',', array_filter($store, 'is_numeric'));
unset($store);
于 2013-04-10T16:13:24.507 に答える
0

値をループするときstore[]は、関数を使用しis_numeric()て値が数値かどうかを確認します。ある場合はコンマを追加し、そうでない場合は追加しないでください。

マニュアル

于 2013-04-10T15:48:07.340 に答える