php排序数组函数

PHP是一门非常强大的语言,它不仅提供了丰富的函数库,同时还提供了很多方便的排序函数来对数组进行排序。

在PHP中,可以通过多种排序算法来进行数组排序。这些排序算法被封装在PHP系统库中的函数中,包括sort(), rsort(), asort(), arsort(), ksort(), krsort()等等。这些函数都有相应的特点和用途,即需要根据实际需求来选择相应的函数。

下面我们来具体介绍一下这些PHP排序数组函数及其使用方法:

1. sort()/rsort()

sort()是PHP中最基本、最常用的排序函数之一。该函数的作用是对数组进行升序排序。相对应的,对于rsort()函数,则是按照降序的方式对数组进行排序。以下是sort()函数的使用方式:

```

$numbers = array(3, 2, 8, 6, 3, 9);

sort($numbers);

print_r($numbers); // 输出:Array ( [0] => 2 [1] => 3 [2] => 3 [3] => 6 [4] => 8 [5] => 9 )

```

2. asort()/arsort()

asort()函数和arsort()函数用于对数组进行关联性的排序,这意味着按照值的大小进行排序,但是保留键名的关联。以下是asort()函数的例子:

```

$marks = array("Peter" => 85, "Joe" => 91, "Ben" => 76);

asort($marks);

print_r($marks); // 输出:Array ( [Ben] => 76 [Peter] => 85 [Joe] => 91 )

```

相对应的,arsort()函数则是将数组按照降序的关联进行排序。

3. ksort()/krsort()

ksort()函数和krsort()函数用于对数组进行按照关键字排序,即按照键名进行排序。以下是ksort()函数的例子:

```

$marks = array("Peter" => 85, "Joe" => 91, "Ben" => 76);

ksort($marks);

print_r($marks); // 输出:Array ( [Ben] => 76 [Joe] => 91 [Peter] => 85 )

```

相对应的,krsort()函数则是按照降序关键字进行排序。

4. usort()

usort()函数可以自定义排序算法来对数组进行排序,这意味着可以根据不同的排序算法来对不同类型的数据进行排序。以下是usort()函数的例子:

```

function cmp($a, $b)

{

if ($a == $b) {

return 0;

}

return ($a < $b) ? -1 : 1;

}

$numbers = array(3, 2, 8, 6, 3, 9);

usort($numbers, "cmp");

print_r($numbers); // 输出:Array ( [0] => 2 [1] => 3 [2] => 3 [3] => 6 [4] => 8 [5] => 9 )

```

在上例中,我们在usort()函数中传递了一个自定义的排序算法“cmp()”,该算法通过比较大小来完成数组排序。

5. uasort()

uasort()函数类似于usort()函数,但是对于关联数组进行排序,会保留键名的关联。以下是uasort()函数的例子:

```

function cmp($a, $b)

{

if ($a == $b) {

return 0;

}

return ($a < $b) ? -1 : 1;

}

$marks = array("Peter" => 85, "Joe" => 91, "Ben" => 76);

uasort($marks, "cmp");

print_r($marks); // 输出:Array ( [Ben] => 76 [Peter] => 85 [Joe] => 91 )

```

在上例中,我们在uasort()函数中传递了一个自定义的排序算法“cmp()”,该算法同样是通过比较数值大小来完成数组排序的。

上述例子是一些PHP排序数组函数的基本使用方法,但是实际上我们可以将它们进行组合使用来满足不同的订单需求。在PHP中,我们可以使用array_multisort()函数来对多维数组进行排序,该函数可以根据多个关键字和排序规则对数组进行排序。

例如,在以下例子中,我们演示了如何对多维关联数组进行排序:

```

$employee = array(

array('id' => '1', 'name' => 'Peter', 'age' => 23),

array('id' => '2', 'name' => 'Joe', 'age' => 32),

array('id' => '3', 'name' => 'Ben', 'age' => 19)

);

foreach ($employee as $key => $row) {

$id[$key] = $row['id'];

$name[$key] = $row['name'];

$age[$key] = $row['age'];

}

array_multisort($age, SORT_DESC, $name, SORT_ASC, $employee);

print_r($employee);

```

在上述例子中,先使用foreach()函数遍历数组构建出它们的关键字。随后,我们调用array_multisort()函数对员工数组进行排序,基于年龄和姓名进行排序,并且需要按照降序和升序的方式排序。

最后我们输出排序后的员工数组,如下所示:

```

Array ( [0] => Array ( [id] => 2 [name] => Joe [age] => 32 )

[1] => Array ( [id] => 1 [name] => Peter [age] => 23 )

[2] => Array ( [id] => 3 [name] => Ben [age] => 19 ) )

```

最后,我们可以通过var_dump()函数来查看函数返回值。例如,在以下示例中,我们将使用var_dump()函数来查看sort()函数的返回值:

```

$numbers = array(3, 2, 8, 6, 3, 9);

var_dump(sort($numbers)); // 输出:bool(true)

```

通过上面的操作,我们可以看到sort()函数返回一个布尔值true,该值表示函数排序完成并返回了结果。其他排序函数在返回值方面也类似,因此在使用过程中需要注意查看函数的返回值。 如果你喜欢我们三七知识分享网站的文章, 欢迎您分享或收藏知识分享网站文章 欢迎您到我们的网站逛逛喔!https://www.37seo.cn/

点赞(24) 打赏

评论列表 共有 1 条评论

笑靥荼靡 1年前 回复TA

愿自己快乐不断,健康相伴!

立即
投稿
发表
评论
返回
顶部