尊敬的全部, 我如何從這些示例中刪除額外的0字符串。使用php切斷perticuler指向的字符串
當前字符串:0102000306 必需的字符串:12036
這裏0值在每個號碼的前面。所以,我需要從字符串中減去額外的全零[0]值,並得到我期望的字符串。這是不可能使用str_replace。因爲那麼所有的零將被替換。那麼,我該怎麼做呢。
感謝
尊敬的全部, 我如何從這些示例中刪除額外的0字符串。使用php切斷perticuler指向的字符串
當前字符串:0102000306 必需的字符串:12036
這裏0值在每個號碼的前面。所以,我需要從字符串中減去額外的全零[0]值,並得到我期望的字符串。這是不可能使用str_replace。因爲那麼所有的零將被替換。那麼,我該怎麼做呢。
感謝
$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);
}
使用正則表達式:
$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('',array_map('intval',str_split('0102000306',2)));
這不是特別優雅,但這應該做你想要什麼:
$old = '0102000306';
$new = '';
for ($i = 0; $i < strlen($old); $i += 2) {
$new .= $old[$i+1];
}
echo $new;
你是怎麼決定保持中間的零點,但不是其他的?算法對我來說不是很清楚。 – Piskvor 2011-02-01 10:24:28
你想刪除零序列中不存在的所有零,並用一個零代替所有零序列? – Gordon 2011-02-01 10:24:50
你也可以通過字符串循環,並可以使條件和生成新的字符串 – 2011-02-01 10:27:01