首页 > 解决方案 > 如何检查一个字符串是否是另一个字符串的重新排序?

问题描述

如果我有两个字符串,例如“123456789”和“135792468”,并且我想知道它们是否是相互重新排序的,那么 PHP 中是否有一个函数function is_reorder(str1, str2)可以输入is_reorder(123456789, 135792468)并返回TRUE,因为 123456789 只是 135792468以不同的顺序?

如果没有内置功能,我该怎么做?

标签: phpalgorithm

解决方案


这是一个方法:

$string1 = '123456789';
$string2 = '135792468';

$stringParts1 = str_split($string1);
sort($stringParts1);

$stringParts2 = str_split($string2);
sort($stringParts2);

if($stringParts1 == $stringParts2){
echo 'strings are a reorder';
}else{
echo 'strings are not a reorder'; 
};

这样做是将字符串分开,按字母顺序对字符进行排序,然后进行比较。这是一个例子

编辑:该implode()功能已被删除,因为不必要。


推荐阅读