1,快速创建数组的函数range()
比如range()函数
可
以快速创建从1到9的数字数组:
<?php
$numbers=range(1,9);
echo
$numbers[1];
?>
|
当然,使用
range(9,1)则创建了9到1的数字数组。同时,range()还可以创建从a到z 的字符数组:
<?php
$numbers=range(a,z);
foreach
($numbers as $mychrs)
echo $mychrs." ";
?>
|
使
用字符数组时注意大小写,比如range(A,z)和range(a,Z)是不一样的。
range()函数还具有第三个
参数
,该参数的作用是设定步长
,比如range(1,9,3
)
创建的数组元素是:1、4、7
2,PHP中常规数组的排序
一般数组中的各元素均以字符或数字表现的,所以可对数组元素进行升序排
列,该功能函数为sort()
。比如:
<?php
$people=array('name','sex','nation','birth');
foreach
($people as $mychrs)
echo $mychrs." ";
sort($people);
echo
"<br />---排序后---<br />";
foreach ($people as $mychrs)
echo
$mychrs." ";
?>
|
升序排序后的数组元素显示
为 birth name nation sex,当然,sort()函数是区分字母大小写的(字母从大到小的顺序是:A…Z…a…z)
Sort()
函数还具有第二参数,用来说明升序的规则是用来比较数字还是字符串的。比如:
<?php
echo "---按数字升序排序---<br />";
$num2=array('26','3',);
sort($num2,SORT_NUMERIC);
foreach
($num2 as $mychrs)
echo $mychrs." ";
echo "<br
/>---按字符升序排序---<br />";
$num3=array('26','3');
sort($num3,SORT_STRING);
foreach
($num3 as $mychrs)
echo $mychrs." ";
?>
|
SORT_NUMERIC
和SORT_STRING用来声明按数字或字符的升序排列。如果按照数字升序排列是:3,26;但如果按照字符升序排列则是:26,3了。
PHP
中除了升序函数以外,还有降序或称反向排列的函数
,就是rsort()函数
,比
如:
$num1=range(1,9);
rsort($num1);
|
这
里其实就相当于range(9,1)
3,PHP中关联数组的排序
PHP除了支持数字
索引数组以外,还支持相关数组。比如如下数组就是一个相关(关联)数组
:
$peoples=array('xm'=>'name','xb'=>'sex','mz'=>'nation','cs'=>'birth');
|
使
用sort($peoples)默认即是按照元素定义值的升序排序,在关联数组中可使用asort()函数表示,关联数组中最主要的则是可按照关键字(如
xm、xb、mz等)的升序排序,该方法是用函数ksort()函数。
<?php
$peoples=array('xm'=>'name','xb'=>'sex','mz'=>'nation','cs'=>'birth');
foreach
($peoples as $mychrs)
echo $mychrs." ";
echo "<br
/>--按元素值升序排列--<br />";
asort($peoples);
foreach ($peoples
as $mychrs)
echo $mychrs." ";
echo "<br
/>--按关键字升序排列--<br />";
ksort($peoples);
foreach ($peoples
as $mychrs)
echo $mychrs." ";
?>
|
和
常规数组拥有sort()升序函数的反向排序rsort()降序函数相对应的,关联数组也有对应的降序函数:asort()函数和arsort()函数、
ksort()函数和krsort()函数。
记忆:原型函数是sort(),其中a、k表示关联数组相关必须前置,反向
排序使用r修饰。
4,PHP数组元素随机排序
PHP中使用shuffle()
函数
将数组元素进行随机的重新排序,比如:
<?php
$fer=array('cnbruce','cnrose','cnjames','cnanne');
shuffle($fer);
foreach
($fer as $mychrs)
echo $mychrs." ";
?>
|
每
次都会显示不同的排序组合
5,PHP数组按原顺序反向排序
PHP中可使用array_reverse()
函数
将数组元素按原顺序反向排序。比如:
<?php
$fer=array('cnbruce','cnrose','cnjames','cnanne');
foreach
($fer as $mychrs)
echo $mychrs." ";
$fer=array_reverse($fer);
echo
"<br />--按原顺序反向--<br />";
foreach ($fer as $mychrs)
echo
$mychrs." ";
?>
|
cnbruce
cnrose cnjames cnanne
--按原顺序反向--
cnanne cnjames cnrose cnbruce
注
意这里的 $fer=array_reverse($fer);
在此之前的任何排序函数均只是声明引用,并没有对原有数组进行重新定义,但当我调试该函数时则需要重新定义。这是因为array_reverse()是返
回原数组修改后的副本,如果不需要原有数组,可对原数组重新定义达到覆盖的目的,否则就另外定义数组保存副本,比
如:$fer_bak=array_reverse($fer);
分享到:
相关推荐
PHP提供了多种内置函数用于数组的排序,包括sort、asort、rsort、krsort和ksort。这些函数各自有不同的特性和用途,下面将详细介绍它们的区别。 1. sort() sort()函数用于对数组中的元素进行升序(从小到大)排序。...
本文实例讲解了PHP数组排序中sort、asort与ksort的用法,供大家参考借鉴之用。具体实例如下所示: <?php $arr = array('d'=>'sdf', 'r'=>'sdf', 'a'=> 'eee'); //sort($arr); // 对数组的值进行重排, 删除之前的...
`arsort()` 与 `asort()` 类似,但它是按值降序排序关联数组,同时保持键值对的对应关系。 ```php $fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple"); arsort($fruits); var_...
- **asort()**, **arsort()**, **ksort()**, **krsort()**: 稳定排序。 - **sort()**, **rsort()**: 不稳定排序。 #### 五、多维数组的排序 **5.1 使用 array_multisort()** - **array_multisort()**: 可以根据一...
在处理关联数组时,`asort()`和`arsort()`可以基于值进行排序,这在显示数据时特别有用,例如按照国家名的字母顺序显示国家列表。 了解这些基本的排序函数是PHP编程中的一项重要技能,它们可以帮助开发人员更有效地...
PHP提供了多种内置的数组排序函数,如`sort()`, `rsort()`, `asort()`, `arsort()`, `ksort()`, `krsort()`, `usort()`, `uasort()`, 和 `uksort()`等。初学者容易混淆这些函数的名称,导致排序失败。确保正确使用...
•asort() – 根据值,以升序对关联数组进行排序 •ksort() – 根据键,以升序对关联数组进行排序 •arsort() – 根据值,以降序对关联数组进行排序 •krsort() – 根据键,以降序对关联数组进行排序 ...
2. **asort()**:按值对关联数组进行升序排序,保持键值对应关系。 3. **ksort()**:按键对关联数组进行升序排序。 4. **arsort()**:按值对关联数组进行降序排序,保持键值对应关系。 5. **krsort()**:按键对关联...
如果数组包含键值对,并且需要根据值或键进行排序,则可以使用 `asort()`、`arsort()`、`ksort()` 或 `krsort()` 函数。例如,在电子商务网站中,可以使用 `asort()` 来根据价格对商品进行排序。 ##### 3. 自定义...
在讨论`ArrayKeysSort`之前,我们先了解PHP的一些内置排序函数,如`sort()`、`rsort()`、`asort()`、`arsort()`、`ksort()`和`krsort()`。这些函数分别用于对数组的值进行升序、降序排序,或对键进行升序和降序排序...
除了`ksort()`和`krsort()`,PHP还提供了其他数组排序函数,如`asort()`(按值升序排序关联数组,保持键值对应关系)、`arsort()`(按值降序排序关联数组,保持键值对应关系)、`sort()`(按值升序排序索引数组)和`...
- `asort()`:对关联数组进行升序排序,保持键值关联。 - `arsort()`:对关联数组进行降序排序,保持键值关联。 - `ksort()`:根据关联数组的键进行升序排序。 - `krsort()`:根据关联数组的键进行降序排序。 - `...
`asort()` 和 `arsort()` 函数 这两个函数同样进行升序或降序排序,但它们保持了元素原有的键名。 ```php $a = ['a' => 1, 2]; asort($a); // 升序排序并保持键名 printr($a); arsort($a); // 降序排序并保持键名...
- `asort()`: 对关联数组按值进行升序排序,保留键。 - `arsort()`: 对关联数组按值进行降序排序,保留键。 - `ksort()`: 对关联数组按键进行升序排序。 - `krsort()`: 对关联数组按键进行降序排序。 8. 搜索数组 -...
- `asort()` 保留键的同时按值升序排序。 - `arsort()` 保留键的同时按值降序排序。 - `ksort()` 按键升序排序。 - `krsort()` 按键降序排序。 - `usort()` 用户自定义排序函数。 - `uasort()` 保留键的用户...
如果需要根据值而不是键进行排序,可以使用`asort()`和`arsort()`函数。`asort()`对数组值进行升序排序,同时保持键值对的关系。 ```php $data = array("US" => "United States", "IN" => "India", "DE" => ...