比方说,我有一个数字ng-repeat
,我想将其从右到左分成2个字符,从而得到类似10000
的数组。
[0] => 1,[1] => 00,[2] => 00
是否有可能?
答案 0 :(得分:3)
您可以使用preg_split
来检查直到尾数为偶数的位置。
$result = preg_split('~\B(?=(..)+$)~', '10000');
\B
非单词边界,防止匹配字符串的开头。 (非单词边界仅在两个数字之间匹配)
(?=(..)+$)
是一个超前检查,用于检查该位置后是否有偶数个字符。
否则,您可以在字符串长度为奇数时添加前导0,并在第一项中将其删除:
$str = '10000';
if ( strlen($str) & 1 ) {
$res = str_split("0$str", 2);
$res[0] = (int)$res[0];
} else {
$res = str_split($str, 2);
}
print_r($res);
或更短,使用三元运算符:
$result = str_split( strlen($str) & 1 ? "0$str" : $str, 2);
$result[0] = (int)$result[0];
答案 1 :(得分:3)
必须有更简便的方法,但是您可以使用类似的方法:
array_map("strrev", array_reverse(str_split(strrev(10000), 2)));
[0] => 1
[1] => 00
[2] => 00
答案 2 :(得分:0)
好吧,没关系,我可以做类似strrev($string)
的事情,然后将其除以2