PHP:在整数中重新排列数字
我有许多15位数字。我需要根据设置的顺序重新排列每个数字中的数字,以隐藏复合标识符。例如:将12345678913456转换为223134897616545 我想到的方法是:PHP:在整数中重新排列数字,php,Php,我有许多15位数字。我需要根据设置的顺序重新排列每个数字中的数字,以隐藏复合标识符。例如:将12345678913456转换为223134897616545 我想到的方法是: 1) Extract each digit using $array = str_split($int) 2) Create a new array with required order from $array above 但这就是我被困的地方。如何将数组的所有数字合并为一个整数?这也是一种有效的方法吗 我还需要知道它
1) Extract each digit using $array = str_split($int)
2) Create a new array with required order from $array above
但这就是我被困的地方。如何将数组的所有数字合并为一个整数?这也是一种有效的方法吗
我还需要知道它被洗牌的顺序,以便检索原始数字。将数组内爆并将其转换为整数
(int)impode(“”,$array)
您已经走了一半。您可以使用或:
我随机得到这个:
574146563298123
结果是字符串。您可以通过类型转换转换为int:
echo(int)join($no\u arr)代码>另一种可能更少行的方法:
$num = 1234;
$stringOriginal = (string) $num;
// build the new string, apply your algorithm for that as needed
$stringNew = $stringOriginal[1] . $stringOriginal[0] . $stringOriginal[3] . $stringOriginal[2];
$numNew = (int) $stringNew;
警告:这没有错误处理,很容易弄乱索引并产生错误,因为可能爆炸
和uasort
?内爆
以创建一个字符串返回0+连接(''.$array)
这很好,但我不能使用shuffle,因为我需要知道它被洗牌的顺序,以便检索原始编号。您有什么方法提供顺序吗?还是逻辑?@FBP:我想问题已经从你的评论中改变了。@Thamilan是的,我可以定义我自己的顺序。
$num = 1234;
$stringOriginal = (string) $num;
// build the new string, apply your algorithm for that as needed
$stringNew = $stringOriginal[1] . $stringOriginal[0] . $stringOriginal[3] . $stringOriginal[2];
$numNew = (int) $stringNew;