有人可以帮我参加我的大学考试吗?我尝试搜索,但是我是php的新手,我还在学习
这就是我想要的,能否给我一些想法或功能,以便我可以排列正整数数组来形成最大的数字字符串?
例如:
$arrnew = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
assert(getLargestNumStr($arrnew) == 98765432110, 'Basic test 9-8-7-6-5-4-3-2-1-10');
希望你能帮助我。
答案 0 :(得分:1)
这是一个很好的问题,可以通过以下观察方法解决:
x
和y
中的两个元素,因此假设对于通过附加这两个元素而创建的两个数字:xy > yx
=>在最终结果中,{{ 1}}将始终位于x
的前面,否则,我们可以通过在结果中交换y
和x
的位置来轻松创建更大的数字。 =>比较两个数字y
和x
时,我们可以根据此观察结果简单地创建自定义排序。
答案 1 :(得分:0)
尝试使用诸如arsort()之类的降序对数组进行排序,并将Array-elements隐含为字符串。这应该为您提供尽可能多的号码。
答案 2 :(得分:0)
如果可以解决您的问题,请尝试以下代码...
$array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
$text='';
foreach($array as $arr){
$text.=$arr;
}
$string = str_split($text, "1");
$new_text = implode(",", $string);
$output=explode(",",$new_text);
rsort($output);
$final = '';
foreach($output as $out){
$final.=$out;
}
echo $final;
答案 3 :(得分:0)
尝试一下
$arrnew = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
arsort($arrnew);
$str = str_replace(',','',join(',',$arrnew));
$arr1 = str_split($str);
arsort($arr1);
print_r($arr1);
echo implode('',$arr1);