PHP常用数组处理函数

在这里插入图片描述

一、变量与数组的转换
compact() 将变量以变量名的方式组装成数组

$a = 'aa';
$b = 'bb';
$arr = compact('a','b');
//返回的结果为
['a'=>'aa','b'=>'bb']//应用场景1
//在TP、Laravel中将查询出来的数据向末班引擎中添加的时候会用到..
extract() 将数组解析成变量/ 和compact是反转的

$arr = ['bianliang1'=>'赵','bianliang2'=>'锐']extract($arr);
//使用-输出bianliang1(相当于你声明了一次变量,有点向ES6解构赋值的意思)
echo $bianliang1;
二、变量和字符串的转换
$str = '热爱,喜欢,兴奋';
$arr = explode(',',$str);//表示以字符串中的逗号分隔成数组
//结果为
['热爱','喜欢','兴奋'];
//如果解析的字符串是个空字符串,结果是一个数组有一个索引为0的值,值为空;并不是个空数组;

$arr = ['热爱','喜欢','兴奋'];
//将数组解析成字符串
$str = implode(',',$arr);
//得到的结果为
'热爱,喜欢,兴奋'
三、数组和数组之间关系
并集关系

$arr1 = ['赵','上','的'];
$arr2 = ['张','赵'];
//将2个数组合并
$arr_mer = array_merge($arr1,$arr2)//结果为
['赵','上','的','张','赵']
差集关系

$arr1 = ['赵','上','的'];
$arr2 = ['张','赵'];
//获取第一个数组在第二个数组中的差集部分,就是没有的部分
$arr_dif = array_diff($arr1,$arr2)//结果为
['上','的']
交集关系

$arr1 = ['赵','上','的'];
$arr2 = ['张','赵'];
//获取2个数组相交集的部分数组
$arr_inter = array_intersect($arr1,$arr2);
//结果为
['赵']
四、数组值的操作
删除数组最后一个值

$arr = ['赵','上','的'];
array_pop($arr);//删除数组最后一个值
//结果为
['赵','上']
向数组中追加一个值

$arr = ['赵','上','的'];
array_push($arr'王');//支持多个参数,比如第三个参数 仍然会被追加到数组中去
//得到结果为: (array_push不需要接收,直接引用操作原数组)
echo $arr;
['赵','上','的''王'];
五、判断值是否存在数组中
判断值是否存在数组中

$arr = ['name'=>'赵锐庆','age'=>18,'class'=>'大班'];
$bol = in_array('赵锐庆',$arr);//如果存在返回true 否则返回false
//得到结果为true
判断键是否存在数组中

$arr = ['name'=>'赵锐庆','age'=>18,'class'=>'大班'];
$bol = array_key_exists('name',$arr);//如果值存在返回true,否则返回false
//得到结果为true
六、数组去重
数组去重

$arr = ['赵','赵','锐'];
$arr_uni = array_unique($arr);//数组去重
//得到的结果为
['赵','锐']
七、获取二维数组中值的集合
$arr = [
    ['name'=>'赵锐庆','id'=>'one','school'=>'南理工'],
    ['name'=>'孙悟空','id'=>'two','school'=>'南理工'],
    ['name'=>'刘德华','id'=>'three','school'=>'南理工'],
    ['name'=>'朱德','id'=>'four','school'=>'南理工'],
];
//提取name为键的值构成一维数组
$arr_colu = array_column($arr,'name');
//得到结果
['赵锐庆','孙悟空','刘德华','朱德']
//提取那么为键的值切提取对应数组红的id值作为键构成一维键值数组
$arr_colu = array_column($arr,'name','id');
['one'=>'赵锐庆','two'=>'孙悟空','three'=>'刘德华','four'=>'朱德']
八、提取数组的键与值
获取数组的键

$arr = ['name'=>'赵锐庆','id'=>'one','school'=>'南理工'];
$arr_val = array_values($arr);//提取数组中的值
//得到的结果为
['赵锐庆','one','南理工'];
获取数组的值

$arr = ['name'=>'赵锐庆','id'=>'one','school'=>'南理工'];
$arr_key = array_keys($arr)//提取数组中键的集合
//得到结果为
['name','id','school'];
九、返回数组中值的和
返回数组中值的和

$arr = ['name'=>'赵锐庆','id'=>'one','school'=>'南理工'];
$number = count($arr);
//返回的结果 
3
十、返回数组随机的键
$arr = ['name'=>'赵锐庆','id'=>'one','school'=>'南理工'];
$number = array_rand($arr);
//返回的结果 
'id'
十一、搜索值是否存在数组中
$arr = ['name'=>'赵锐庆','id'=>'one','school'=>'南理工'];
$is = array_search('赵锐庆'=>$arr);
//返回的结果
'name'
十二、多维数组进行排序
/*
上面讲的数组排序都是指的一个整体数组,索引数组升序降序等等或者关联数组根据键值对的升序或者排序;
而这里将的排序是一个数组收到其他数组的影响进行排序;其实这种方式就如同对数据库的数据进行升降排序的道理是一致的;
*/        
$guys = array(
            array('name'=>'jake', 'score'=>80, 'grade' =>'A'),
            array('name'=>'jina', 'score'=>70, 'grade'=>'A'),
            array('name'=>'john', 'score'=>30, 'grade' =>'A'),
            array('name'=>'sss', 'score'=>70, 'grade'=>'C'),
            array('name'=>'ben', 'score'=>20, 'grade'=>'B')
        );
       //如上有一个数组,要求根据score字段升序,相同的情况下根据name字段排序;
	   $score = array_column($guys,”score”);
	   $score = array_column($guys,”name”);
       Array_multisort($score,SORT_ASC,$name,SORT_DESC,$guys );
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值