PHP-删除每第N个字母(循环)

我在这里找到了许多针对我问题的回答,但我找不到确切的答案.
我必须从数组中删除每个第4位,但是开始和结束要形成一个圆圈,所以如果我在下一个循环中删除第4位,那将是另一个数字(可能是第4个或第3个),这取决于字符串中有多少个数字

$string = "456345673474562653265326";
$chars = preg_split('//', $string, -1, PREG_SPLIT_NO_EMPTY);
$result = array();
for ($i = 0; $i < $size; $i += 4) 
{
    $result[] = $chars[$i];
}

解决方法:

<?php
$string = "abcdef";
$chars = str_split($string);

$i = 0;
while (count($chars) > 1) {
    $i += 3;
    $n = count($chars);
    if ($i >= $n)
        $i %= $n;

    unset($chars[$i]);
    $chars = array_values($chars);

    echo "DEBUG LOG: n: $n, i: $i; s: " . implode($chars, '') . "\n";
}
?>

输出:

DEBUG LOG: n: 6, i: 3; s: abcef
DEBUG LOG: n: 5, i: 1; s: acef
DEBUG LOG: n: 4, i: 0; s: cef
DEBUG LOG: n: 3, i: 0; s: ef
DEBUG LOG: n: 2, i: 1; s: e
上一篇:[模板] 扩展中国剩余定理


下一篇:遍历JSON以查找是否存在定义的对象