我在php中有一个小任务。我有一个简单的数组。
Array
(
[0] => 50
[1] => 100
[2] => 150
)
Run Code Online (Sandbox Code Playgroud)
是否有一个PHP内置函数可供我使用,以便它可以返回true或false,因此,如果数组已经排序或没有排序,或者对此的任何其他php脚本,没有循环。我知道使用循环和条件很容易。
如果输入数组相等,则可以将其与排序后的数组进行比较。
$input = array(50, 100, 150);
$sorted = array_values($input);
sort($sorted);
if ( $input === $sorted ) {
// input array was already sorted
}
Run Code Online (Sandbox Code Playgroud)
function arraySorted($array) {
$a = $array;
$b = $array;
sort($b);
if ($a == $b){
return true;
} else {
return false;
}
}
//test for [0],[3],[2]
$input = array(0 => 250,
3 => 100,
2 => 150);
var_dump($input);
echo "<br />";
//array(3) { [0]=> int(250) [3]=> int(100) [2]=> int(150) }
var_dump(arraySorted($input));
echo "<br />";
//bool(false)
//test for [0],[1],[2]
$input = array(0 => 250,
1 => 100,
2 => 150);
var_dump($input);
echo "<br />";
//array(3) { [0]=> int(250) [1]=> int(100) [2]=> int(150) }
var_dump(arraySorted($input));
echo "<br />";
//bool(false)
//test for [0],[3],[2] and asc values
$input = array(0 => 50,
1 => 100,
2 => 150);
var_dump($input);
echo "<br />";
//array(3) { [0]=> int(50) [1]=> int(100) [2]=> int(150) }
var_dump(arraySorted($input));
echo "<br />";
//bool(true)
Run Code Online (Sandbox Code Playgroud)
在这里,您可以尝试使用以下代码:
<?php
$sort = array(
0 => 50,
1 => 100,
2 => 150
);
$default = $sort;
sort($sort);
$flag = true;
foreach($sort as $key=>$value)
if($value!=$default[$key])
$flag = false;
if($flag)
echo "Already sorted";
else
echo "Not Already sorted";
?>
Run Code Online (Sandbox Code Playgroud)