シングルバイト
等分
chunk_split
var_dump(chunk_split("ab\nadefqp", 2, '/'));
string(14) "ab/
a/de/fq/p/"
str_split
var_dump(str_split("ab\nadefqp", 2));
array(5) {
[0]=>
string(2) "ab"
[1]=>
string(2) "
a"
[2]=>
string(2) "de"
[3]=>
string(2) "fq"
[4]=>
string(1) "p"
}
マルチバイト
等分
preg_match_all('/[\s\S]{1,2}/u', "ああ\n😂defqp", $matches);
var_dump($matches[0]);
preg_match_all('/[\s\S]{1,5}/u', "ああ\n😂defqp", $matches);
var_dump($matches[0]);
preg_match_all('/[\s\S]{1,6}/u', "ああ\n😂defqp", $matches);
var_dump($matches[0]);
array(5) {
[0]=>
string(6) "ああ"
[1]=>
string(5) "
😂"
[2]=>
string(2) "de"
[3]=>
string(2) "fq"
[4]=>
string(1) "p"
}
array(2) {
[0]=>
string(12) "ああ
😂d"
[1]=>
string(4) "efqp"
}
array(2) {
[0]=>
string(13) "ああ
😂de"
[1]=>
string(3) "fqp"
}
指定数で分割
20180102 ⇒ 2018/01/02
$string = '20180102';
// mb_substr
$list = [
mb_substr($string, 0, 4),
mb_substr($string, 4, 2),
mb_substr($string, 6, 2),
];
var_dump(implode('/', $list));
// regular expression
preg_match('/([0-9]{4})([0-9]{2})([0-9]{2})/u', $string, $matches);
array_shift($matches);
var_dump(implode('/', $matches));
string(10) "2018/01/02"
string(10) "2018/01/02"
特定文字で分割
2018/01/02 23:59:00 ⇒ 2018 01 02 23 59 00
mb_split
$string = '2018/01/02 23:59:00';
var_dump(mb_split('[/ :]', $string));
array(6) {
[0]=>
string(4) "2018"
[1]=>
string(2) "01"
[2]=>
string(2) "02"
[3]=>
string(2) "23"
[4]=>
string(2) "59"
[5]=>
string(2) "00"
}
preg_split
$string = '2018/01/02 23:59:00';
var_dump(preg_split('/[\/ :]/u', $string));
array(6) {
[0]=>
string(4) "2018"
[1]=>
string(2) "01"
[2]=>
string(2) "02"
[3]=>
string(2) "23"
[4]=>
string(2) "59"
[5]=>
string(2) "00"
}