gpt4 book ai didi

带有模式的 Php 格式字符串

转载 作者:行者123 更新时间:2023-12-01 23:12:29 25 4
gpt4 key购买 nike

我有一个字符串(已修剪),我想根据预定义的模式拆分该字符串。我写了一个可能更具解释性的代码。

    $string="123456789";
$format=['XXX','XX','XXXX'];
$formatted="";
foreach ($format as $cluster){
$formattedCluster=substr($string,0,strlen($cluster));
$string=substr($string,strlen($cluster));
$formatted.=$formattedCluster.' ';
}
$formatted=substr($formatted, 0, -1);

dd($formatted);

//outputs: "123 45 6789"

如您所见,它接受一个没有任何空格的字符串,并在本例中根据模式 $format 用空格将其分隔。模式是一个数组。

一个伪例子:

$str='qweasdzxc'

$pattern=['X','X','XXXX','XXX']

$formatted='q w easd zxc';//预期输出

它按预期工作,但相当丑陋。这个问题的正确解决方案是什么?我所说的正确性是指速度和可读性。

环境:PHP 7.4,Laravel 8

最佳答案

我会使用 https://www.php.net/manual/en/function.vsprintf.php得到结果:

$str='qweasdzxc';
$pattern='% % %%%% %%%'; // ['X','X','XXXX','XXX']
echo vsprintf(str_replace('%', '%s', $pattern), str_split($str));

关于带有模式的 Php 格式字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69570797/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com