PHP 知识量:7 - 20 - 67
php常用的数组排序函数有sort()、rsort()、asort()、arsort()、ksort()、krsort()、shuffle()等,具体功能如下:
sort()基于数组值的比较,是从小到大正序排列,排序完成后键的序列会重新被整理,适合用于索引数组的排序。
rsort()与sort()功能类似,但它是倒序排列。
asort()基于数组值的比较,是从小到大正序排列,排序后保留键和值的对应关系。
arsort()与asort()功能类似,但它是倒序排列。
ksort()基于数组键的比较,是从小到大正序排列,适用于关联数组的排序。
krsort()与ksort()功能类似,但它是倒序排列。
shuffle()将数组打乱并随机排序,重新分配键值。
1、sort()与rsort()的示例:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>index</title> </head> <body> <?php $arrayOne = array('1_1', '1_2', '1_3'); $arrayTwo = array('one' => '2_1', 'two' => '2_2', 'three' => '2_3'); foreach ($arrayOne as $key => $value) { echo "$key : $value<br>"; } foreach ($arrayTwo as $key => $value) { echo "$key : $value<br>"; } /**********应用sort()**********/ echo "应用sort后:<br>"; sort($arrayOne); sort($arrayTwo); foreach ($arrayOne as $key => $value) { echo "$key : $value<br>"; } foreach ($arrayTwo as $key => $value) { echo "$key : $value<br>"; } /**********应用rsort()**********/ echo "应用rsort后:<br>"; rsort($arrayOne); rsort($arrayTwo); foreach ($arrayOne as $key => $value) { echo "$key : $value<br>"; } foreach ($arrayTwo as $key => $value) { echo "$key : $value<br>"; } ?> </body> </html>
运行结果:
代码运行后,数组的键值被重写,因此sort()和rsort()不适用于关联数组。
2、asort()与arsort()的示例:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>index</title> </head> <body> <?php $arrayOne = array('1_1', '1_2', '1_3'); $arrayTwo = array('one' => '2_1', 'two' => '2_2', 'three' => '2_3'); foreach ($arrayOne as $key => $value) { echo "$key : $value<br>"; } foreach ($arrayTwo as $key => $value) { echo "$key : $value<br>"; } /**********应用asort()**********/ echo "应用asort后:<br>"; asort($arrayOne); asort($arrayTwo); foreach ($arrayOne as $key => $value) { echo "$key : $value<br>"; } foreach ($arrayTwo as $key => $value) { echo "$key : $value<br>"; } /**********应用arsort()**********/ echo "应用arsort后:<br>"; arsort($arrayOne); arsort($arrayTwo); foreach ($arrayOne as $key => $value) { echo "$key : $value<br>"; } foreach ($arrayTwo as $key => $value) { echo "$key : $value<br>"; } ?> </body> </html>
运行结果:
3、ksort()与krsort()的示例:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>index</title> </head> <body> <?php $arrayOne = array('1_1', '1_2', '1_3'); $arrayTwo = array('one' => '2_1', 'two' => '2_2', 'three' => '2_3'); foreach ($arrayOne as $key => $value) { echo "$key : $value<br>"; } foreach ($arrayTwo as $key => $value) { echo "$key : $value<br>"; } /**********应用ksort()**********/ echo "应用ksort后:<br>"; ksort($arrayOne); ksort($arrayTwo); foreach ($arrayOne as $key => $value) { echo "$key : $value<br>"; } foreach ($arrayTwo as $key => $value) { echo "$key : $value<br>"; } /**********应用krsort()**********/ echo "应用krsort后:<br>"; krsort($arrayOne); krsort($arrayTwo); foreach ($arrayOne as $key => $value) { echo "$key : $value<br>"; } foreach ($arrayTwo as $key => $value) { echo "$key : $value<br>"; } ?> </body> </html>
运行结果:
数组按照键值大小进行了排序。
4、shuffle()的示例:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>index</title> </head> <body> <?php $number = array(11, 22, 33, 44, 55); var_dump($number); echo "<br>应用shuffle()后:<br>"; shuffle($number); var_dump($number); ?> </body> </html>
以上代码中,调用shuffle()后,数组$number的元素会被重新随机排序,每次调用,排序后的数组元素顺序都可能不同。
php数组有许多可用的计算函数,常用的有以下几个。
1、array_sum(),可以对数组中所有元素数值相加,然后返回总和。
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>index</title> </head> <body> <?php $number = array(11, 22, 33, 44, 55); $result = array_sum($number); echo "$result"; ?> </body> </html>
以上代码中,定义了一个索引数组,其中包含5个数字。调用array_sum()函数进行加总计算,然后输出,结果为“165”。
2、array_product(),可以对数组中所有元素数值相乘,然后返回乘积。
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>index</title> </head> <body> <?php $number = array(11, 22, 33, 44, 55); $result = array_product($number); echo "$result"; ?> </body> </html>
以上代码中,调用array_product()函数的计算结果为“19326120”。
3、count(),其作用是统计数组中元素的个数并返回结果。
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>index</title> </head> <body> <?php $number = array(11, 22, 33, 44, 55); $result = count($number); echo "$result"; ?> </body> </html>
以上代码中,同样定义了数组$number,调用count()函数后,输出的结果为数组$number的元素个数“5”。
php数组常用的查找类函数有以下几个。
1、in_array(),用于检查数组中是否存在某个值。它有三个参数,分别是:
要查找的值
待查找的数组
是否同时判断类型一致性,设为TRUE时则为判断,默认不判断,此为可选项。
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>index</title> </head> <body> <?php $number = array(11, 22, 33, 44, 55); $set = 22; $result = in_array($set, $number); echo "$result"; ?> </body> </html>
in_array()函数返回结果是一个布尔值,因此,如果为真,打印出来会是“1”,如果为假,则为空白。以上代码中,打印的结果为“1”。
2、array_search(),用于搜索并返回给定值的索引。它有三个参数,分别是:
要查找的值
待查找的数组
是否同时判断类型一致性,设为TRUE时则为判断,默认不判断,此为可选项。
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>index</title> </head> <body> <?php $number = array(11, 22, 33, 44, 55); $set = 33; $result = array_search($set, $number); echo "$result"; ?> </body> </html>
array_search()中,如果可以找到给定值,则返回该值对应的索引值,否则返回FALSE。如果数组中存在多个匹配的值,则返回找到的第一个值的索引值。以上代码的结果为“2”。
3、array_key_exists(),用于检查给定的索引是否存在于数组中。它有两个参数,分别是:
要查找的索引值
待查找的数组
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>index</title> </head> <body> <?php $arrayTwo = array('one' => '2_1', 'two' => '2_2', 'three' => '2_3'); $set = 'two'; $result = array_key_exists($set, $arrayTwo); echo "$result"; ?> </body> </html>
array_key_exists()会返回一个布尔值,如果找到给定索引值就返回TRUE,否则返回FALSE。以上代码打印出来的结果为“1”(TRUE)。
1、key(),用于从数组中取得当前值的索引值,示例如下:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>index</title> </head> <body> <?php $arrayTwo = array('one' => '2_1', 'two' => '2_2', 'three' => '2_3'); $result = key($arrayTwo); echo "$result"; ?> </body> </html>
以上代码的结果为“one”。
2、array_keys(),用于返回数组中所有的索引值,其中,如果指定了具体元素值,则只返回该值的索引值。它有三个参数:
待检索的数组
指定的查找值(可选)
是否同时检查类型(可选),默认不写(FALSE),不检查。
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>index</title> </head> <body> <?php $arrayTwo = array('one' => '2_1', 'two' => '2_2', 'three' => '2_3'); $result = array_keys($arrayTwo); var_dump($result); echo '<br>'; $result = array_keys($arrayTwo, '2_2'); var_dump($result); ?> </body> </html>
以上代码的打印结果为:“array(3) { [0]=> string(3) "one" [1]=> string(3) "two" [2]=> string(5) "three" } ”和“array(1) { [0]=> string(3) "two" }”。
3、list(),用于将数组的值赋值给变量。需要特别注意,该函数只适用于索引数组,并假定索引值从0开始。
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>index</title> </head> <body> <?php $arrayOne = array('1_1', '1_2', '1_3'); list($a, $b, $c) = $arrayOne; echo "a=$a,b=$b,c=$c"; ?> </body> </html>
以上代码的打印结果为:“a=1_1,b=1_2,c=1_3”。
Copyright © 2017-Now pnotes.cn. All Rights Reserved.
编程学习笔记 保留所有权利
MARK:3.0.0.20240214.P35
From 2017.2.6