017——数组(十七) asort ksort rsort arsort krsort

本文详细介绍了PHP中数组排序的方法,包括按值排序并保留键名的asort()、按键名排序并保留键名的ksort()、反向排序不保留键名的rsort()、反向排序并保留键名的arsort()以及对键名进行反向排序并保留键名的krsort()。通过示例展示了每种排序方式的具体应用。
<?php
/**
 *  数组 asort ksort rsort arsort krsort
 */

//asort()对数组按值排序,保留键名:
/*$arr=array(
    'bbs_url'=>'bbs.lantian.com',
    'web_url'=>'www.lantian.com',
    'bbs_name'=>'免费视频教程',
    'www_name'=>'PHP项目开发',
);
asort($arr);
print_r($arr);//输出:Array ( [www_name] => PHP项目开发 [bbs_url] => bbs.lantian.com [web_url] => www.lantian.com [bbs_name] => 免费视频教程 )*/

//ksort() 对数组按键名进行排序,保留键名
/*$arr=array(
    'bbs_url'=>'bbs.lantian.com',
    'web_url'=>'www.lantian.com',
    'bbs_name'=>'免费视频教程',
    'www_name'=>'PHP项目开发',
);
ksort($arr);
print_r($arr);//输出:Array ( [bbs_name] => 免费视频教程 [bbs_url] => bbs.lantian.com [web_url] => www.lantian.com [www_name] => PHP项目开发 )*/

//rsort()对数组进行反向排序,不保留键名
/*$arr=array(
    'bbs_url'=>'bbs.lantian.com',
    'web_url'=>'www.lantian.com',
    'bbs_name'=>'免费视频教程',
    'www_name'=>'PHP项目开发',
);
rsort($arr);
print_r($arr);//输出:Array ( [0] => 免费视频教程 [1] => www.lantian.com [2] => bbs.lantian.com [3] => PHP项目开发 )*/

//arsort()对数组进行反向排序,保留键名
/*$arr=array(
    'bbs_url'=>'bbs.lantian.com',
    'web_url'=>'www.lantian.com',
    'bbs_name'=>'免费视频教程',
    'www_name'=>'PHP项目开发',
);
arsort($arr);
print_r($arr);//输出:Array ( [bbs_name] => 免费视频教程 [web_url] => www.lantian.com [bbs_url] => bbs.lantian.com [www_name] => PHP项目开发 )*/

//krsort() 对数组的键名进行反向排序,保留键名
$arr=array(
    'bbs_url'=>'bbs.lantian.com',
    'web_url'=>'www.lantian.com',
    'bbs_name'=>'免费视频教程',
    'www_name'=>'PHP项目开发',
);
krsort($arr);
print_r($arr);//输出:Array ( [www_name] => PHP项目开发 [web_url] => www.lantian.com [bbs_url] => bbs.lantian.com [bbs_name] => 免费视频教程 )

  

好的,在PHP中可以完成您提到的任务,以下是具体的解释: --- ### **任务说明** #### 1. 使用`for`循环输出数组 `arr1` 的元素 假设 `arr1 = [5, 3, 8]`: ```php $arr1 = [5, 3, 8]; $len = count($arr1); for ($i = 0; $i < $len; $i++) { echo "arr1[$i]: {$arr1[$i]}<br>"; } ``` #### 2. 使用`foreach`循环输出关联数组 `arr2` 的键和值 假设 `arr2 = ['a' => 10, 'b' => 20, 'c' => 30]`: ```php $arr2 = ['a' => 10, 'b' => 20, 'c' => 30]; foreach ($arr2 as $key => $value) { echo "$key: $value<br>"; } ``` #### 3. 对数组 `arr1` 进行排序操作 ##### (1) 升序排序 - `sort()` 函数:按值排序,忽略键名。 ```php sort($arr1); // 输出:[3, 5, 8] print_r($arr1); ``` ##### (2) 按值升序排列并保留原索引 - `asort()` 函数: ```php asort($arr1); // 索引保持不变,值排序 print_r($arr1); ``` ##### (3) 按键名升序排列 - `ksort()` 函数: 如果将 `arr1` 转换为关联数组形式,则按键名排序: ```php $arr1_assoc = [1 => 5, 0 => 3, 2 => 8]; // 示例转换后的数组 ksort($arr1_assoc); // 键名为依据排序 print_r($arr1_assoc); ``` #### 4. 对数组 `arr2` 进行降序排序操作 ##### (1) 值的降序排序 - `rsort()` 函数:仅适用于普通数组。 对于关联数组需要其他方法: ```php // arr2 是关联数组,无法直接使用 rsort() ``` ##### (2) 按值降序排列并保留原索引 - `arsort()` 函数: ```php arsort($arr2); // 按照值从大到小排序 print_r($arr2); ``` ##### (3) 按键名降序排列 - `krsort()` 函数: ```php krsort($arr2); // 根据键名降序排序 print_r($arr2); ``` #### 5. 随机打乱数组 `arr1` 并输出结果 ```php shuffle($arr1); // 打乱数组顺序 print_r($arr1); ``` #### 6. 将数组 `arr2` 反向排序 反向排序会改变原有结构(反转顺序),可以使用 `array_reverse()` 或者手动实现: ```php $arr2_reversed = array_reverse($arr2, true); // 第二个参数设为true以保留原始键名 print_r($arr2_reversed); ``` --- 以上是对 PHP 中各种数组处理方式的具体示例。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值