我如何从这些样本中删除额外的0字符串。
当前字符串:0102000306 必填字符串:12036
这里每个数字前面都有一个0值。所以,我需要从字符串中删除额外的所有零[0]值并获得我期望的字符串。使用str_replace是不可能的。因为那么所有零都将被替换。那么,我该怎么做呢?
答案 0 :(得分:4)
使用正则表达式:
$result = preg_replace('#0(.)#', '\\1', '0102000306');
结果:
"12036"
使用array_reduce:
$string = array_reduce(str_split('0102000306', 2), function($v, $w) { return $v.$w[1]; });
或array_map + implode:
implode('',array_map('intval',str_split('0102000306',2)));
答案 1 :(得分:3)
$currentString = '0102000306';
$length = strlen($currentString);
$newString = '';
for ($i = 0; $i < $length; $i++) {
if (($i % 2) == 1) {
$newString .= $currentString{$i};
}
}
或
$currentString = '0102000306';
$tempArray = str_split($currentString,2);
$newString = '';
foreach($tempArray as $val) {
$newString .= substr($val,-1);
}
答案 2 :(得分:0)
它不是特别优雅,但这应该做你想要的:
$old = '0102000306';
$new = '';
for ($i = 0; $i < strlen($old); $i += 2) {
$new .= $old[$i+1];
}
echo $new;