https://segmentfault.com/a/1190000014746905
## 简述
数据处理是任何程序员都避免不了的,PHP有一套强大的数组处理函数,可以很好帮助处理常见的数据处理问题。自己的脑子记性不好,经常忘记函数怎样用,所以记下来给自己以后好好翻查,也希望对你们有所帮助吧。
## Q&A
### PHP怎样定义数组和赋值?
这个简单,给简单列一下,欢迎补充:
(1)数组定义
~~~
<?php
// 数组定义
$arr1 = array();
$arr2 = [];
?>
~~~
(2)数组赋值
~~~
<?php
// 利用 list 函数给数组赋值
list($arr[], $arr[], $arr[]) = [1, 2, 3];
?>
~~~
### array\_multisort() - 数组排序
函数功能:可以同时对多个数组进行排序,关联键名保持不变,数字键名会被重新索引。
~~~
<?php
// 自定义数据
$data[] = array('volume' => 67, 'edition' => 2);
$data[] = array('volume' => 86, 'edition' => 1);
$data[] = array('volume' => 85, 'edition' => 6);
$data[] = array('volume' => 98, 'edition' => 2);
$data[] = array('volume' => 86, 'edition' => 6);
$data[] = array('volume' => 67, 'edition' => 7);
// 取得列的列表
foreach ($data as $key => $row) {
$volume[$key] = $row['volume'];
$edition[$key] = $row['edition'];
}
// 先将数据根据 volume 降序排列,出现重复时再根据 edition 升序排列
// 把 $data 作为最后一个参数,以通用键排序
array_multisort($volume, SORT_DESC, $edition, SORT_ASC, $data);
print_r($data);
?>
~~~
### array\_column() - 获取数组指定一列
函数功能:根据指定的 key,获取指定的那一列数据。
~~~
<?php
// 对目标数组获取 key 的一列,并复制到结果数组
$resultArr = array_column($targetArr, 'key');
?>
~~~
### array\_diff() - 数组相减求差集合
函数功能:对两个数组进行比较,求两个数组的差集。
~~~
<?php
// 把两个数组的差集保存到结果数组
$diffArr = array_diff($arr1, $arr2);
?>
~~~
### array\_flip() - 数组键和值互换位置
函数功能:将数组中的键和值进行位置调换,
~~~
<?php
// 把目标数组的键和值互换位置
array_flip($targetArr);
?>
~~~
### array\_intersect() - 两个数组的交集
函数功能:比较两个数据的交集,算出两个数组的相同部分。
~~~
<?php
// 两个数组的交集保存到结果数组
$resultArr = array_intersect($arr1, $arr2)
?>
~~~
### array\_key\_exists() - 判断数组键名是否存在
函数功能:判断数组中指定键名或索引是否存在,仅适用一维数组。
<?php
~~~
// 判断数组是否有 key 这个键
if(!array_key_exists('key', $targetArr)) {
throw new \Exception('目标数组没有key这个键!');
}
~~~
?>
### array\_merge() - 合并数组
函数功能:合并多个数据,不会合并相同键值的元素。
~~~
<?php
// 合并数组
$resultArr = array_merge($arr1, $arr2)
?>
~~~
### array\_pad() - 按照设定补全数组元素
函数功能:设定函数长度,多除少补地保证数组长度跟设定的一致,可以设置补充元素的值。
~~~
<?php
// 结果计划是:$resultArr = [1,2,3,0,0]
$resultArr = array_pad([1,2,3], 5, 0);
?>
~~~
### array\_pop() - 数组最后一个元素出栈(删)
函数功能:把数组最后一个函数去掉。
~~~
<?php
// 删掉最后一个元素
$resultArr = array_pop([1,2,3]);// $resultArr = [3]; [1,2]
?>
~~~
### array\_product() - 数组内元素相乘
函数功能:计算数组内的所有元素相乘的结果,空数组返回1。
~~~
<?php
// 数组内元素相乘
$result = array_product([1,2,3]) // $result = 6
?>
~~~
### array\_sum() - 数组内元素相加
函数功能:计算数组内所有元素相加的结果,空数组返回0。
~~~
<?php
// 数组内元素相加
$result = array_sum([1,2,3,4]) // $result = 10
?>
~~~
### array\_push() - 数组叠加元素
函数功能:给数组叠加(入栈)元素,可以是多个。
~~~
<?php
// 数组加元素
$resultArr = array_push([1,2],3,4); // $resultArr = [1,2,3,4]
?>
~~~
### array\_search() - 数组搜索键值
函数功能:搜索数组指定值,搜索成功将返回首个元素的键值。
~~~
<?php
// 把数组搜索 needle 的结果保存起来
$result = array_search('needle', $targetArr);
?>
~~~
### array\_shift() - 数组第一个元素出栈(删)
函数功能:把数组中的第一个元素删掉,弹出第一个元素。
~~~
<?php
// 删掉第一个元素
$resultArr = array_shift([1,2,3]); // [2,3]
?>
~~~
### implode() - 数组转字符串
函数功能:把数组以一定格式转为字符串。
~~~
<?php
$arr = array('Hello','World!','I','love','Shanghai!');
echo implode(" ",$arr);// 数组以空格连在一起,转成字符串
?>
~~~
### explode() - 字符串转数组
函数功能:把字符串以一定格式切割转为数组。
~~~
<?php
$str = "Hello world. I love Shanghai!";
print_r (explode(" ",$str));// 字符串以空格的方式切割,转为数组
?>
~~~
- 一维数组操作方法
- 求得这个数组中各个元素之和
- 取出两个数组中相同的内容
- 将数组元素组合为字符串implode
- 将字符串转化为数组explode
- 逗号分割的字符串去重
- 一维数组增加某个值
- PHP从数组中找到指定元素的位置
- 二维或多维数组操作方法
- 根据某一个键值合并生成一个新的二维数组
- 二维数组变一维数组
- 二维数组取一个值变一维数组
- php二维数组合并及去重复的方法
- php数组根据某键值,把相同键值的合并最终生成一个新的二维数组
- 二维数组增加一个值
- 生成无限级树算法
- sql2md SQL转化为markdown语法
- PHP修改多维数组中的某个值
- 二维数组
- 省市区联动的查询
- PHP求某二维数组,某一列元素的最大最小值
- php 求二维数组的差集
- 按某个键值排序
- 基本知识
- 键名作为键值
- PHP中foreach的用法和实例
- PHP foreach 循环案例
- php5.3以后的foreach的&符号不建议使用
- PHP中判断变量为空的几种方法小结
- 判断PHP数组是否为空的代码
- php删除数组中指定值的元素的几种方法
- PHP删除数组中的指定元素
- php数组函数序列之array_keys() - 获取数组键名
- php 中更简洁的三元运算符 ?:
- 函数
- 字符串函数
- 数组函数
- 实例
- 将 $arr 中age大于第一个大于30的人增加一项一条信息
- 强大的数组函数