您的位置:首页 > 编程语言 > PHP开发

PHP基础笔记【3】数组操作

2017-04-01 00:00 176 查看
1.判断
1.判断数组值是否为空
$arr =  array();
echo empty($arr)?'该数组为空<hr/>':'该数组不为空<hr/>';
2.判断键(索引)是否在该数组内
$arr =array('name'=>molaifeng,'age'=>'25','height'=>'167');
echo array_key_exists('age',$arr)?'存在<hr />':'该索引不存在<hr />';
3.判断值是否在改数组内
echo in_array('25',$arr)?'存在<hr />':'该值引不存在<hr />';
4.比较数组
array_diff(array1,array2,array3...);可用一个或任意多个数组与第一个数组进行比较。
array_diff_assoc():  比较数组,返回差集(比较键名和键值)。
array_diff_key():      比较数组,返回差集(只比较键名)。
array_diff_uassoc(): 比较数组,返回差集(比较键名和键值,使用用户自定义的键名比较函数)
2.取值
1.分别打印数组的键(索引)和值
array_keys($arr);
array_values($arr);
2.取交集
$arr1 = array(9,11,1,2,3,4);
$arr2 = array(1,2,3,4,5);
print_r(array_intersect($arr1,$arr2));
3.移除重复的值
$arr = array(9,11,1,2,3,9,2,3,4);
print_r(array_unique($arr));
4.取出部分的值
array_slice (array array, int offset[,int length])  它将返回数组中的一部分,
从键offset开始,到offset+length位置结束
如果该值设置为负数,则函数将在举例数组末端这么远的地方终止取出。
3.统计计数
1.数组的长度
count($arr);
echo 'count里不是数组而是字符串',count('string'),'<br />';  //1
echo 'count里不是数组而是空',count(null),'<hr />';              //0
2.所有值进行统计计数
array_count_values() 函数对数组中的所有值进行计数。
3.数组中所有值的和
如果所有值都是整数,则返回一个整数值。如果其中有一个或多个值是浮点数,则返回浮点数,只计算整形和浮点型
array_sum();

4.赋值
1. list函数,首先把list的内部的变量与array中的单元不管数组中有没有此单元按顺序,从array[0],逐一对应.
一一对应之后,从右往左赋值,该函数只用于数字索引的数组,且假定数字索引从 0 开始。
list($a,$b) =array('name','molaifeng');;
echo $a,' ',$b,'<hr />';
2.交换数组中的键与值
array_flip($arr)
3.入栈和出栈
3. 1 入栈:
$arr =array('name'=>'molaifeng','age'=>'25','height'=>'167');
1.array_push($arr,'weight','hobby'); 往数组里追加单元,将一个或多个单元压入数组的末尾(入栈),
推荐直接操作数组来追加
2. $arr[] = 'new'; //记住挺有用的,推荐直接操作数组来追加
3.array_unshift — 在数组开头插入一个或多个单元(入栈)
//所有的数值键名将修改为从零开始重新计数,所有的文字键名保持不变。
array_unshift($arr,'molaifeng','a','b');
3.2出栈:
array_pop();   //将数组最后一个单元弹出(出栈)
array_shift();  //将数组开头的单元移出数组(出栈),并返回该单元的值
4.合并数组:
array_merge($arr1,$arr2);
该函数与 array_merge_recursive() 函数之间的不同是在处理两个或更多个数组元素有相同的键名的情况。
array_merge_recursive() 不会进行键名覆盖,而是将多个相同键名的值递归组成一个数组。
array_combine()   函数通过合并两个数组来创建一个新数组,其中的一个数组是键名,另一个数组的值为键值。
注意:1.必须元素个数相同。 2.索引数组和关联数组都可以,这个函数只关心 值。
5.一位数组变二维数组
array_chunk(array,size,preserve_key);             数把数组分割为新的数组块。
6. 从二维数组中取出某一列的集合
array_column(array,column_key,index_key);    返回输入数组中某个单一列的值。
5.排序
1.排序
asort($arr);//关联数组排序,保留字符索引
sort($arr); //索引数组排序  //关联数组排序,但会丢失字符索引
2.反序
array_reverse — 返回一个单元顺序相反的数组 print_r(array_reverse($arr));

6.与数组之间的转化
1. 把数组转化为字符串
$arr = array('a','b');
$str = implode(',',$arr);
2. 把字符串转换为数组
$str = explode(',',$str);
7.其他
number_format() 函数通过千位分组来格式化数字。

2.实例:
1. array_chunk();   //把一个一位数组分割为一个包含多个一位数组的二维数组,true可选着是否保留之前的key值
$cars=array('a'=>"Volvo","Mercedes","Opel");
print_r(array_chunk($cars,1,true));
//结果:
Array
(
[0] => Array
(
[a] => Volvo
)
[1] => Array
(
[0] => Mercedes
)
[2] => Array
(
[1] => Opel
)
)

2. array_column(array,column_key,index_key);
从记录集中取出 last_name 列:
<?php
// 表示由数据库返回的可能记录集的数组
$a = array(
array(
'id' => 5698,
'first_name' => 'Bill',
'last_name' => 'Gates',
),
array(
'id' => 4767,
'first_name' => 'Steve',
'last_name' => 'Jobs',
),
array(
'id' => 3809,
'first_name' => 'Mark',
'last_name' => 'Zuckerberg',
)
);

1. $last_names = array_column($a, 'last_name');
print_r($last_names);
?>

输出:
Array
(
[0] => Gates
[1] => Jobs
[2] => Zuckerberg
)
2.$last_names = array_column($a, 'last_name', 'id');
print_r($last_names);
Array
(
[5698] => Gates
[4767] => Jobs
[3809] => Zuckerberg
)

3.  实例3
range(low,hight),依次打印从low到high或从high到low
print_r(range(1,10));
echo '<br />';
print_r(range(10,1));
echo '<hr />';
结合range和array_sum计算从1到100的值
echo array_sum(range(1,100)),'<br />';
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  php 数组 操作