我想根據字符的位置拆分變量。生成的第一個字符串應該在指定位置之前具有前一個位置,而另一個字符串應該包含其他部分。如何根據位置拆分字符串
假設,如果我有一個變量$var = "2013AD";
我想
$var1 = 2013
和var2 = 'AD'
。
我該如何做到這一點?
我想根據字符的位置拆分變量。生成的第一個字符串應該在指定位置之前具有前一個位置,而另一個字符串應該包含其他部分。如何根據位置拆分字符串
假設,如果我有一個變量$var = "2013AD";
我想
$var1 = 2013
和var2 = 'AD'
。
我該如何做到這一點?
呃...要去奧卡姆的剃刀在這裏,但substr?
$var1 = substr($var, 0, 4);
$var2 = substr($var, 4);
您可以簡單地使用sscanf
$var = "2013AD";
list($var1, $var2) = sscanf($var, "%4d%2s");
echo $var1, ":", $var2;
輸出
2013:AD
如果您正在使用date
把它當作這樣的工作:
$var = "2013AD";
$date = DateTime::createFromFormat("Y\A\D",$var);
echo $date->format("Y");
您還可以使用t他SUBSTR功能
$var1 = substr($var, 0, 4);
$var2 = substr($var, 4);
<?php
function py_slice($input, $slice) {
$arg = explode(':', $slice);
$start = intval($arg[0]);
if ($start < 0) {
$start += strlen($input);
}
if (count($arg) === 1) {
return substr($input, $start, 1);
}
if (trim($arg[1]) === '') {
return substr($input, $start);
}
$end = intval($arg[1]);
if ($end < 0) {
$end += strlen($input);
}
return substr($input, $start, $end - $start);
}
print py_slice('abcdefg', '2') . "\n";
print py_slice('abcdefg', '2:4') . "\n";
print py_slice('abcdefg', '2:') . "\n";
print py_slice('abcdefg', ':4') . "\n";
print py_slice('abcdefg', ':-3') . "\n";
print py_slice('abcdefg', '-3:') . "\n";
?>
從實施例中的輸出:
4(str_split)或字母和數字(正則表達式)之間的計數? – 2013-04-04 21:02:49
是嗎? 2個選項,你回答'是'? – 2013-04-04 21:05:02
@Dagon後回答顯示這兩種方法,讓我接受它.. – 2013-04-04 21:07:05