PHP:如何对字符串中的字符进行排序?
我有一组字符串,其中包含PHP脚本中的字符,我需要对每个字符串中的这些字符进行排序。
例如:
"bac" -> "abc"
"abc" -> "abc"
"" -> ""
"poeh" -> "ehop"
这些字符没有重音符号,并且都是小写的。如何在PHP中执行此操作?
我有一组字符串,其中包含PHP脚本中的字符,我需要对每个字符串中的这些字符进行排序。
例如:
"bac" -> "abc"
"abc" -> "abc"
"" -> ""
"poeh" -> "ehop"
这些字符没有重音符号,并且都是小写的。如何在PHP中执行此操作?
我会把它变成一个数组,并使用排序函数:
$string = 'bac';
$stringParts = str_split($string);
sort($stringParts);
echo implode($stringParts); // abc
使用排序时,它必须是小写文本。我有大写的字符串导致许多问题在我非常字符串繁重的网站上与asort()和sort()不知道这个;)。我使用以下函数作为快速脚本。请注意 allChars 函数的“strtolower”。然后,您可以稍后使用小写字母进行操作。或者,另一个处理大写和小写的字符串排序是 natcasesort()。。Natcasesort,它处理正确(自然)排序 - 就像我们在纸上订购东西一样。你可以提供一个数组,并使用 foreach 分隔每个单词。或者,将此作为创建处理数组的函数的基础。您可以使用 implode('',$letters) 而不是 foreach 语句 - 但此函数允许您在需要时更改字母 - 只需在 foreach 内执行此操作即可。还添加了内爆功能,以防有人喜欢这些功能。
function allChars($w){
$letters = str_split(strtolower($w)); sort($letters);
$ret = "";
foreach($letters as $letter){
$ret .= $letter;
}
return $ret;
}
function implodeAllChars($w){
$letters = str_split(strtolower($w)); sort($letters);
return implode($letters);
}
function allCharsNat($w){
$letters = str_split($w); natcasesort($letters);
$ret = "";
foreach($letters as $letter){
$ret .= $letter;
}
return $ret;
}
function allCharsNatImplode($w){
$letters = str_split($w); natcasesort($letters);
return implode($letters);
}
它既快速又简单。