Я хочу разбить переменную на основе позиции символов. В результате первая строка должна иметь предыдущую позицию перед указанной позицией, а другая строка должна содержать другие части.
Предположим, если у меня есть переменная $var = "2013AD";
я хочу
$var1 = 2013
и var2 = 'AD'
.
Как я могу это достичь?
Ух … Пойду сюда бритву оккума, но субстрат ?
$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");
<?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"; ?>
Результат из примеров:
вы можете использовать функцию substr
$var1 = substr($var, 0, 4); $var2 = substr($var, 4);