https://www.jb51.net/article/49956.htm
相信大家一定遇到这样的问题,因为PHP是弱类型的,所以进行排序的时候,有时候很胃疼
所以这里就需要将位数进行统一后进行处理
一般都是将末尾添加0进行补位
方法1 : str_pad — 使用另一个字符串填充字符串为指定长度
该函数返回 input 被从左端、右端或者同时两端被填充到制定长度后的结果
$input = '11111';
echo str_pad($input, 10, '0', STR_PAD_LEFT); // 输出 "-=-=-
这里输出的结果是:
1111100000
/*string str_pad ( string $input, int $pad_length [, string $pad_string [, int $pad_type]] )*/
<?php
$input = "Alien";
echo str_pad($input, 10);
// produces "Alien "
echo str_pad($input, 10, "-=", STR_PAD_LEFT);
// produces "-=-=-Alien"
echo str_pad($input, 10, "_", STR_PAD_BOTH);
// produces "__Alien___"
echo str_pad($input, 6 , "___");
// produces "Alien_"
?>
/*补齐字符串的长度.以pad_string 补.默认补在右边,如果STR_PAD_LEFT就补到左边,STR_PAD_BOTH两边一起补。下次用str_pad,毕竟是内置的,肯定比自定义的快。*/
/*
你上面的方法我觉得不怎么好,介绍一下我写的一个方法。方法函数如下,这样当你要的结果001的话,方法:dispRepair('1',3,'0')
功能:补位函数
str:原字符串
type:类型,0为后补,1为前补
len:新字符串长度
msg:填补字符
*/
function dispRepair($str,$len,$msg,$type='1') {
$length = $len - strlen($str);
if($length<1)return $str;
if ($type == 1) {
$str = str_repeat($msg,$length).$str;
} else {
$str .= str_repeat($msg,$length);
}
return $str;
}
本文介绍了在PHP中解决字符串排序问题的一种方法,通过使用str_pad函数或自定义函数dispRepair来统一字符串位数,实现更精确的排序。文章详细解释了str_pad函数的参数和用法,并提供了一个自定义函数示例,用于灵活地在字符串前后添加指定字符以达到所需长度。

451

被折叠的 条评论
为什么被折叠?



