Blogger Information
Blog 5
fans 0
comment 1
visits 5424
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
常用数组处理函数
不羁PHP学习笔记
Original
1439 people have browsed it

数组输出函数

print_r($arr,$bool) 格式化输出变量

实例

$arr1 = ['id'=>10, 'name'=>'杨过', 'sex'=>'male', 'salary'=>8000];
$res = print_r($arr1, true);
echo gettype($res),'<br>';
echo $res,'<br>';

运行结果

string
Array ( [id] => 10 [name] => 杨过 [sex] => male [salary] => 8000 ) 

var_dump($arr1,$arr2...)  可输出多个变量的详细信息

实例

$arr1 = ['id'=>10, 'name'=>'杨过', 'sex'=>'male', 'salary'=>8000];
echo var_dump($arr1),'<br>';

运行结果

array(4) { ["id"]=> int(10) ["name"]=> string(6) "杨过" ["sex"]=> string(4) "male" ["salary"]=> int(8000) }

var_export($arr,true)  输出变量的字符串表示,其实就是php语句

实例

$arr1 = ['id'=>10, 'name'=>'杨过', 'sex'=>'male', 'salary'=>8000];
echo var_export($arr1,true), '<hr>';

运行结果

array ( 'id' => 10, 'name' => '杨过', 'sex' => 'male', 'salary' => 8000, )

可加<pre></pre>标签包裹格式化输出方便查看

实例

echo '<pre>',var_export(array_values($arr1),true),'</pre><hr>';

array (
 0 => 10,
 1 => '杨过',
 2 => 'male',
 3 => 8000,
)

数组函数__键值操作

array_values($arr): 返回元素值组成的新数组(索引)

 * 1. 功能: 获取数组中的元素值组成的新数组

 * 2. 参数: 只有一个:要处理的数组

 * 3. 返回: 由元素值组成的,且键名经过重新排序的索引数组

 * 4. 场景: 1.关联转索引 2.键名重新整理

array_column($arr,$col, $index): 返回多维数组中的一列,可指定键或索引

 * 1. 功能: 获取多维数组中指定列值组成的新数组

 * 2. 参数: $arr(必),$col(必),$bool(选)类型匹配

 * 3. 返回: 多列组成的新数组

 * 4. 场景: 获取数据表中的指定列的值

array_keys($arr,$val,$bool): 返回键名组成的新数组

* 1. 功能: 返回键名组成的新数组

 * 2. 参数: $arr(必),$key(必),$bool(选)类型匹配

in_array($val, $arr, $bool): 根据元素值判断值是否在数组中,返回布尔值

 * 1.功能: 检查数组中是否存在某个值

 * 2.参数: $val(必),$arr(必),$bool(选)是否严格类型匹配

 * 3.返回: bool

 * 4.场景: 仅适合一维数组

array_search($val, $arr,$bool): 查找指定值,并返回该值的键名,否则返回false

 * 1.功能: 在数组中查询指定的值

 * 2.参数: $val(必),$arr(必),$bool(选)类型匹配

 * 3.返回: 成功返回值对应的键名,失败返回false

 * 4.场景: 与in_array()相比,可以获取更精准的信息

array_key_exists($key,$arr): 根据键名判断元素是否在数组中

 * 1.功能: 判断数组中是否存在指定的键名

 * 2.参数: $key(必), $arr(必)

 * 3.返回: true / false

 * 4.场景: 仅适用于一维数组,判断GET参数很方便

array_flip($arr): 键值互换

 * 1.功能: 键值互换

 * 2.参数: $arr(必)

 * 3.返回: 新数组

array_reverse(): 数组元素顺序翻转

 * 1.功能: 数组元素顺序反转

 * 2.参数: $arr(必)

 * 3.返回: 新数组


 数组函数_数组与变量,字符串之间的转换

list($var1,$val2...)

  •  list($var1, $var2...) = $arr

* 其实list()并不是数组函数,而是一个左值的语法结构,也echo 类似

 * 1. 功能: 将索引数组中的元素与指定变量进行绑定

 * 2. 功能: 变量名列表

 * 3. 返回: 与数组元素值对应的独立变量

 * 4. 场景: 将索引数组的内容转为独立变量

 * 5. 注意: 必须是索引数组,关联内容无效


extract($arr, $flag)

 * 1.功能: 将数组转为变量

* 2.参数: $arr(必),$flag常量参数(选),很多,要查手册,例如:EXTR_SKIP:冲突跳过

 *      EXTR_OVERWRITE: 如果有冲突,覆盖已有的变量,这是默认值;

 *      EXTR_SKIP: 如果有冲突,不覆盖已有的变量;

 *      EXTR_PREFIX_SAME: 如果有冲突,在变量名前加上前缀 prefix;

 *      EXTR_PREFIX_ALL: 给所有变量名加上前缀 prefix;

 *      EXTR_PREFIX_INVALID: 仅在非法/数字的变量名前加上前缀 prefix;

 *      EXTR_IF_EXISTS: 仅在当前符号表中已有同名变量时,覆盖它们的值。其它的都不处理。

 *      举个例子,以下情况非常有用:定义一些有效变量,然后从 $_REQUEST 中仅导入这些已定义的变量。

 *      EXTR_PREFIX_IF_EXISTS: 仅在当前符号表中已有同名变量时,建立附加了前缀的变量名,其它的都不处理。

* 3.返回: 返回变量数量, 同时会生成与数组元素对应的变量,键名转为变量名,值为变量值

 * 4.场景: 不要对不信任的数据进行转换,例如$_POST / $_GET...用户提交数据

compact(str1,str2...)

 * 1.功能: 将变量转为数组,与extract()相反

 * 2.参数: (1)用一个或多个字符串代表变量名, (2)可以使用数组包装变量名来简化

 * 3.返回: 由变量组成的关联数组

 * 4.场景: 组装多个零散变量统一处理,例如做为一条完整记录并存储到数据库中

explode($delimiter, $string, $limit)

 * 1.功能:将规则字符串转为数组(用一个字符串来分割另一个字符串)

 * 2.参数:$delimiter 分割字符串(必),$string被分割的字符串(必),$limit(选)返回数组元素数量

 * 3.返回:由被分割后的字符串组成的数组

 * 4.场景:大多用于人为创建一些有规律的字符串的处理,例如文件路径,邮箱,姓名等

implode($glue, $arr)

 * 1. 功能: 将数组转为字符串 (用胶水字符$glue)

 * 2. 参数: $glue(可选),$arr(必)

 * 3. 返回: 字符串

 * 4. 场景:

数组函数__切割与填充


array_slice($arr, $offset, $length, $bool)

 * 1.功能: 从数组中的指定位置,返回指定数量的元素

 * 2.参数: $arr(必),$offset(必)偏移量,$length(选)数量,$bool(选)是否保留键值关系

 * 3.返回: 返回取出的元素组成的新数组

 * 4.场景: 从大数组中截取数据

array_splice(&$arr, $offset, $length)

 * 1.功能:从数组中移除或替换指定的元素,与array_slice()功能更强大

 * 2.参数:$arr(必),$offset(必)偏移量,$length(选)数量,$replace(选)数组或字符串

 * 3.返回: 返回一个包含有被移除单元的数组

array_chunk($arr,$size,$bool)

 * 1.功能: 将大数组分为指定大小的若干个小数组

 * 2.参数: $arr(必),$size(必),$bool(选)true保留键值关系

 * 3.返回: 长度一致的小数组(最后一个例外)

 * 4.场景: 超大数组分页输出

array_pad($arr,$size,$value)

 * 1.功能:将数组用指定的数据,填充到指定的长度

 * 2.参数:$arr(必),$size(必)长度, $value(必)值

 * 3.返回:被填充后的数组的副本

 * 4.场景: 填充默认值

数组与数据结构

 * 一、堆栈操作

 * 栈:仅允许在一端进行插入和删除的线性表结构,即先入后出,如同弹夹

 * 1.array_push($arr,$val...) 入栈

 * 2.array_pop($arr)出栈,返回栈顶元素,仅一个

  * 二、队列操作

 * 队列:仅允许在头部删除,尾部插入的线性表结构,即先入先出,如同排队

array_push()和array_shift()配合完成

头部增删除操作

 * 1. array_unshift($arr,$var....):头部插入

 * 2. array_shift($arr): 头部删除,配合array_push()进行队列操作

数组函数__回调处理

array_filter($arr, $callback):用回调过滤数组

 * 1.功能: 回调处理每个元素,仅返回结果为true的元素,默认仅对值处理

 * 2.参数: $arr(必),$callback(选),FLAG)

 *      常量参数1:ARRAY_FILTER_USE_KEY,只处理键名  

 *      常量参数2:ARRAY_FILTER_USE_BOTH,键名与值都要处理

 * 3.返回: 仅保存过滤过的新元素的数组

 * 4.场景: 过滤非法数据

array_walk(&$arr, $callback($val,$key,$data),$data的值)

 * 1.功能: 对数组中的每个元素的键值对进行处理

 * 2.参数: 原生支持键值处理,不用常量标识符,附加参数可以扩展功能

 * 3.返回: 可以使用引用传参直接修改原数组

 * 4.场景: 用在对元素进行一些简单业务逻辑的场合

数组函数_排序

根据值排序

 *  1.忽略键名:sort(),rsort(),usort()

 * 1.sort($arr) 升序

 * 2.rsort($arr) 降序

 * 3.usort($arr,$callback) 回调

 *  2.保留键名:asort(),arsort(),uasort()

 * 1.asort($arr) 升序

 * 2.arsort($arr) 降序

 * 3.uasort($arr,$callback) 回调

根据键名排序

 * 1. ksort()

 * 2. krsort()

 * 3. uksort()

数组函数__其它常用函数

range(5,20,2)

生成指定范围与步长的数组

array_unique($arr)

去掉数组中元素值重复的元素

array_fill(起始索引,元素数量,填充值)

array_fill(0,10,0)

创建一个有10个元素的数组,并用0进行初始化

array_rand($arr,3)

从数组中随机取出数据

注意:返回的是随机元素的键名,不是值

返回一个时返回标量的键名,一个以上返回键名数组

shuffle($arr)

将数组顺序随机打乱,直接更新原数组,非常适合验证码

array_merge($db_sys, $db_user)

合并多个数组,同键名自动覆盖,返回新数组


根据项目需要,合理选择适合的函数,组合出各种功能

Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post