web-dev-qa-db-ja.com

PHPでカンマ区切りの文字列を配列に分割する方法を教えてください。

文字列入力をカンマで配列に分割する必要があります。

どうしたらこれを達成できますか。

入力:

9,[email protected],8
227
Kevin

explode を試してください。

$myString = "9,[email protected],8";
$myArray = explode(',', $myString);
print_r($myArray);

出力:

Array
(
    [0] => 9
    [1] => [email protected]
    [2] => 8
)
476
Matthew Groves
$myString = "9,[email protected],8";
$myArray = explode(',', $myString);
foreach($myArray as $my_Array){
    echo $my_Array.'<br>';  
}

出力

9
[email protected]
8
49
Jakir Hossain
$string = '9,[email protected],8';
$array = explode(',', $string);

もっと複雑な状況では、 preg_split を使う必要があるかもしれません。

31
ceejayoz

その文字列がcsvファイルに由来する場合は、 fgetcsv() (または str_getcsv() を使用します。 - )PHP V5.3)がある場合これにより、引用符で囲まれた値を正しく解析できます。 csvではない場合は、 explode() が最善の選択です。

30
soulmerge

コード:

$string = "9,[email protected],8";

$array  = explode(",", $string);

print_r($array);

$no = 1;
foreach ($array as $line) {
    echo $no . ". " . $line . PHP_EOL;
    $no++;
};

オンライン:

body, html, iframe { 
  width: 100% ;
  height: 100% ;
  overflow: hidden ;
}
<iframe src="https://ideone.com/pGEAlb" ></iframe>
1
antelove

簡単な方法であなたはexplode($delimiter, $string)で行くことができます。

しかし、大まかに言えば、手動プログラミングでは、

        $string = "ab,cdefg,xyx,ht623";
        $resultArr = [];
        $strLength = strlen($string);
        $delimiter = ',';
        $j = 0;
        $tmp = '';
        for ($i = 0; $i < $strLength; $i++) {
            if($delimiter === $string[$i]) {
                $j++;
                $tmp = '';
                continue;
            }
            $tmp .= $string[$i];
            $resultArr[$j] = $tmp;
        }

Outpou:print_r($resultArr);

Array
(
    [0] => ab
    [1] => cdefg
    [2] => xyx
    [3] => ht623
)
0
Gautam Rai