亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在每個第 n 個字符處拆分一個字符串,并確保所有段字符串具有相同的長度

在每個第 n 個字符處拆分一個字符串,并確保所有段字符串具有相同的長度

PHP
守著一只汪 2022-10-22 16:51:04
我想將以下字符串拆分為 3 個字母的元素。此外,即使 inout 字符串中的字符數不能均勻分割,我也希望所有元素都有 3 個字母。10 個字符的示例字符串:$string = 'lognstring';所需的輸出:$output = ['log','nst','rin','ing'];請注意如何in第二次使用 inout 字符串中的后期來使最后一個元素“全長”。
查看完整描述

3 回答

?
慕姐4208626

TA貢獻1852條經驗 獲得超7個贊

希望這對您有所幫助。


$str = 'lognstring';

$arr = str_split($str, 3);


$array1= $arr;

array_push($array1,substr($str, -3));

print_r($array1);


查看完整回答
反對 回復 2022-10-22
?
叮當貓咪

TA貢獻1776條經驗 獲得超12個贊

$str = 'lognstring';

$chunk = 3;

$arr = str_split($str, $chunk); //["log","nst","rin","g"]


if(strlen(end($arr)) < $chunk)  //if last item string length is under $chunk

    $arr[count($arr)-1] = substr($str, -$chunk);  //replace last item to last $chunk size of $str


print_r($arr);


/**

array(4) {

  [0]=>

  string(3) "log"

  [1]=>

  string(3) "nst"

  [2]=>

  string(3) "rin"

  [3]=>

  string(3) "ing"

}

 */


查看完整回答
反對 回復 2022-10-22
?
蕪湖不蕪

TA貢獻1796條經驗 獲得超7個贊

與之前發布的答案不同,這些答案會爆炸字符串str_split()然后返回并在需要時清除最后一個元素,我將演示一種技術,該技術將在一次干凈的傳遞中填充子字符串數組。

要有條件地減少最后一次迭代的起點,請使用三元條件min(). 我更喜歡min().

代碼:(演示

$string = 'lognstring';

$segmentLength = 3;

$totalLength = strlen($string);

for ($i = 0; $i < $totalLength; $i += $segmentLength) {

    $result[] = substr($string, min($totalLength - $segmentLength, $i), $segmentLength);

}

var_export($result);

輸出:


array (

  0 => 'log',

  1 => 'nst',

  2 => 'rin',

  3 => 'ing',

)

或者,您可以在拆分之前(而不是之后)準備字符串。


代碼:(演示)


$extra = strlen($string) % $segmentLength;

var_export(

    str_split(

        $extra

            ? substr($string, 0, -$extra) . substr($string, -$segmentLength)

            : $string,

        $segmentLength

    )

);


查看完整回答
反對 回復 2022-10-22
  • 3 回答
  • 0 關注
  • 117 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號