php第4节数组函数键值操作

网站建设 Kongli 6个月前 (04-26) 132次浏览 0个评论

数组中常用的键值操作、数组内部指针操作

声明数组
$user = [‘user’=>’成昆’,’age’=>30,’gender’=>’男’];

输出打印数组
echo ‘<pre>’,print_r($user,true);

判断数组中是否存在某个值
echo in_array(‘成昆’,$user) ? ‘存在’ : ‘不存在’;

判断某个键名是否存在数组中
echo array_key_exists(‘name’,$user) ? ‘存在’ : ‘不存在’;

以索引方式返回数组的值,即输出所有的值
print_r(array_values($user));

以键的方式输出数组,即输出所有的键
print_r(array_keys($user));

以字符串的方式搜索,并返回指定的键
$key = array_search(‘成昆’); //根据值得到键
echo $user[$key]; //输出指定键的值

键值对调,即 显示是前面索引后面为键
print_r(array_flip($user));

取数组的长度
echo count($user);

遍历数组,配合 each()、list() 两个方式进行遍历
each() 是返回当前元素的键值的索引与关联的描述,并且每取一次就会往下移一位,(注意:此方法在php7.0已取消
list() 是将索引数组中的值,赋值给一组变量

示例:while,list(),each()遍历数组
while(list($key,$value) = each($user)){
echo $key , ‘=>’ , $value, ‘<br>’; 循环输出键值对内容
}

数组模拟堆栈和队列操作
入栈:array_push($user,’爱好’); //入栈后的索引是从0开始的,并且是从现有的后面进行插入
出栈:array_pop($user); //只需要一个参数,数组,并且是从最后面开始出的,每次出一个

数组中的队
array_shift($user); //头部出队,即从头部开始删除一位
array_unshift($user); //尾部出队,即从尾部删除一位

for循环遍历数组
$str=”;
for($i=0; $i<count($user);$i++){
$str .=$user[$i].’,’; //输出
}
echo rtrim($str,’,’); //去除右边多余的 , 并输出

foreach循环遍历数组
1.只循环值
foreach($user as $value){
echo $value,'<br>’; //只输出值
}

2.循环键跟值,这些非常常用
foreach($user as $key=>$value){
echo ‘[‘.$key,’]’=>$value,'<br>’; //输出键跟值
}

$value 是循环变量,每一次数组将要输出的当前元素赋值给$value

数组的内部指针
reset($user); //将指针复位,使其指向第0个元素

获取当前元素的键名和值,默认取第一条的
echo key($user),’———-‘,current($user),'<br>’;

数组与变量与字符串之间的转换
1.list() 它是把数组中的元素转为变量,适用用索引数组

示例:
list($name,$sex,$age) = [‘成昆’,’男’,35]; 把右边的数据绑定到左边list里的变量中,这样就形成了3个变量

2.extract(),同样,是把数组中的元素转为变量,适用于关联数组,它能返回变量的数量

示例:
$user = [‘user’=>’成昆’,’age’=>30,’gender’=>’男’];
echo ‘共生成了:’,var_export(extract($user),true),’个变量’;
生成的形式是:$user=’成昆’; $age=30; $gender=’男’

3.compact() 它是将变量转为数组,适用于关键数组
示例:
$user=’成昆’; $age=30; $gender=’男’
compact(‘user’,’age’,’gender’); 用字符串的方式进行转换,变成关联数组

将字符串转为数组,前提是必须是规范的字符串
4.explode(); 将字符串转换为数组,转换的结果为索引数组,它有三个参数,第三个参数为正负增减数,例如指定只要几个字符串转换为数组,正数是从左到右,负数是从右到左
示例:
$str = ‘name,age,gender’;
explode(‘,’,$str);

5.implode();拼接数组,将字符串拼接成数组
示例:
$str = [‘首页’,’网络推广’,’网站优化’,’SEM营销’];
echo var_export(implode(‘|’,$str),true),'<br>’;

数组的填充与切割
range() 动态生成数组,有三个参数,第一个为起始数,第二个为总数,第三个为增长数
示例:
$arr = range(10,60,10); 结果生成了 10,20,30,40,50,60

array_splice(); 数组分割函数,它有三个参数,第一个为要分割的数组,第二个为分割起始位置,第三个为分割的长度,并且长度支持负数,负数是指导从后面开始分割
示例:
echo var_export(array_splic($arr,2,3));

array_chunk(); //将大数组分割为小数组,它的功能是将一个数组分成多个数组
示例:
echo var_export(array_chunk($arr,3)); //将$arra数组分割成3个小数组

array_pad();将数组用指定的数组填充到指定的长度,它有三个参数,第一个是数组,第二个是指定的长度,第三个是填充的内容,它的长度支持负数,如果是负数指的是从尾部开始计数,而填充的内容则会在整个数组的头部
示例:
echo var_export(array_pad($arr,11,’哈哈’),true),'<br>’;
效果:

数组元素的回调处理
即,将一个函数做为参数进行传递,常用的以下几种:
1.array_filter($arr,$callback); //两个参数,第一个是数组,第二个是回调方法,仅返回结果为true的元素
示例:
$arr = [5,0,”,20,10,null,88]; //原始数据
$arr1=array_filter($arr);
因0、”、null 的返回值都为false,所以返回结果为 5,20,10,88,这个函数非常适合删除数组中的空元素

回调,一般是匿名函数来使用,匿名函数实际上就是没有名字的函数,如下
$hello = function(){
return ‘我是匿名函数’;
}
它是一次性的函数,非常适合当回调来用,
示例:
$arr1 = [‘html’,’css’,’java’,’php’];
$arr2=array_filter($arr1,function($value){
return value !==’css’; //判断传递的值,返回非 css 的结果值
});
echo var_export($arr2); //调用显示

1.array_walk(); 对数组中每个元素的键和值进行处理,它非常适合格式化输出显示
示例:
array_walk($arr,function($value,$key){
echo $key,’:’,$value,'<br>’;
})
结果显示:

name:admin

abc:admin@qq.com

第三个参数的回调:
判断当前是name是否admin

去数组中重复的值,使用:array_unique();函数
示例:
echo var_export(array_unique([1,1,2,3,4,5,5,6,6,7])); 输出的结果是把相同的值去掉

数组填充 array_fill(0,10,0) 三个参数,第一个为起始数,第二个为总数,第三个为初始化的值

生成一组随机数 array_rand(range(1,10,3)); 三个参数,第一个为起始数,第二个为总数,第三个为产生的数量,

随机打乱一组数组 shuffle();
示例:
shuffle($arr); //打乱数组中位置,它非常适合随机验证码
echo var_export($arr); 输出

合并多个数组,array_merge(); 它在配置文件中很适用
写法:

结果:

此函数的功能是将自定义的数组内容中相同的替换系统中相同的数据,而不存在的则会保留

数组排序
数组是由键名二部分组成的,排序也主要是依据键名与值,分别为索引和关联,这两种都有升序和降序,而值也有两种排序规则
1.根据数组值排序
示例:
$arr = [33,24,11,50,66];

升序:
sort($arr); //使用sort()进行排序,此函数是升序排序
echo var_export($arr);

降序:
rsort($arr); //使用rsort()进行排序,此函数是降序排序
echo var_export($arr);

自定义回调排序
使用usort(); 并传入两个参数,判断当前的值

自定义升序:

自定义降序:

usort() 多维数组的排序,同时取出多个数组中的值进行比较,默认的是升序排序

根据数组中的键进行排序
升序ksort():

降序(krsort()):


行者信息 , 版权所有丨如未注明 , 均为原创丨转载请注明原文链接:php第4节数组函数键值操作
喜欢 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址