PHPで文字列を分解して配列に保存するための軽いメモです。
うっかり、文字列を分割して配列に保存する方法を忘れていたので、メモです。ちなみに私はPHPをいつも書いているわけではないので、その程度のメモということで・・・。
今回は、数字を文字列として扱って、配列に1文字ずつ格納しようとしました。
分かりやすくいうと、例えば「2009」を「2,0,0,9」と保存したかったのです。
そこで、検索すると下記のような方法が見つかりました。そういえば、昔、関数をあまり知らなかったときに、2009を1000で割って・・・というとても面倒なことを行った記憶がよみがえりました。
それはともかく、例として「2009」を分割する場合は、下記のように書くとOKです。
●ソース
<?php
$str = ’2009′;
$chars = preg_split(‘//’, $str, -1, PREG_SPLIT_NO_EMPTY);
print_r($chars);
?>
●上記の結果は・・・
Array ( [0] => 2 [1] => 0 [2] => 0 [3] => 9 )
●preg_splitの説明も書いておくと・・・
preg_split(‘//’, $str, -1, PREG_SPLIT_NO_EMPTY);
“//”は、検索するパターンを表す文字列(正規表現)。
$strは、文字列。
-1は、いくつの文字列を返すか。例えば、3つの文字列を返すと「preg_split(‘//’, $str, 3, PREG_SPLIT_NO_EMPTY);」で「Array ( [0] => 2 [1] => 0 [2] => 09 ) 」となります。最後の場所に残りの文字(09)が入ります。
PREG_SPLIT_NO_EMPTYは、空文字列でないものだけが返されるという指定。他にも指定がありますが、私には必要なかったので割愛します。すみません。
以上です。

