たとえば、次のコードを使用する場合は次のようになります。
<?php
$tags = "hello, bye, test";
$tags = explode(",", $tags);
?>
コンマで区切られます。しかし、まだスペースが残っているので、それらの値をデータベースに保存したいと思います。どうすればいいですか?
たとえば、次のコードを使用する場合は次のようになります。
<?php
$tags = "hello, bye, test";
$tags = explode(",", $tags);
?>
コンマで区切られます。しかし、まだスペースが残っているので、それらの値をデータベースに保存したいと思います。どうすればいいですか?
", "
区切り文字としてexplode withを使用するのはどうですか?
$tags = "hello, bye, test";
$atags = explode(", ", $tags);
これを取得します:
print_r($atags);
Array ( [0] => hello [1] => bye [2] => test )
私はそれが最も美しい解決策ではないことを知っていますが、それも機能します.
編集
コメントから「はい、しかし、スタックオーバーフローのタグシステムのように、両方の方法で機能するはずです。たとえば、「こんにちは、さようなら」と「こんにちは、さようなら」と「こんにちはさようなら」を分割する必要があります– Xegano 1分前」、
この場合、explode with のみを使用して","
から、単語を囲む空白を削除する必要があります。このようなもの:
$tags = "hello, bye, test";
$atags = explode(",", $tags);
$atags = array_map('trim', $atags);
スペースが常に存在する場合、簡単な解決策は次を使用することです。
$tags = "hello, bye, test";
$tags = explode(", ", $tags);
それ以外の場合 (Michael が提案したように)、値をトリミングできます。
$tags = "hello, bye, test";
$tags = explode(",", $tags);
$tags = array_map('trim', $tags);
編集: マイケルが指摘したように、すべての空白を置き換えたくありません。コンマに続く空白のみを置き換えます。配列マップを使用して、分解された配列内の各項目をトリムによって実行できます。
<?php
$tags = "hello, bye, test";
$tags = array_map(
function($s){
return trim($s);
},
explode(",", $tags)
);
?>