PHP常用函数(一):数组常用函数
1、list()
list() 和 array() 一样,不是一个函数,而是一个语言结构,作用是为一组变量赋值。
PHP手册中的介绍
使用详情
<?php //假设现在想为$a $b $c三个变量赋值,采用info数组中的内容 $info = ['this is a','this is b','this is c'];
list($a,$b,$c) = $info; print<<<EOT
$a
<br>
$b
<br>
$c
<br>
EOT;
运行结果
2、each()
//实例代码 遍历$arr
<?php
$arr = ['a'=>'this is a','b'=>'this is b','c'=>'this is c']; while($tmp = each($arr))
{
echo $tmp['key'].':'.$tmp['value'].'<br>';
}
运行结果:
3、数组指针操作
- current()
- key()
- next()
- prev()
- end()
- reset()
<?php
/*
1 current(); //读取指针位置的内容
2 key(); //读取当前指针指向内容的索引值
3 next(); //将数组中的内部指针指向下一单元
4 prev(); //将数组内部指针倒回一位
5 end(); //将数组内部指针指向最后一个元素
6 reset(); //将目前指针指向第一个索引位置
*/ $info = [
'a' => 'this is a',
'b' => 'this is b',
'c' => 'this is c',
'd' => 'this is d'
]; echo key($info).':'.current($info).'<br>'; next($info);
echo key($info).':'.current($info).'<br>'; end($info);
echo key($info).':'.current($info).'<br>'; reset($info);
echo key($info).':'.current($info).'<br>';
运行结果:
4、键值操作函数
- array_values($arr) - 获得数组的值
- array_keys($arr[,$search[,$strict]])- 获得数组的键名
- array_flip($arr) - 数组中的值与键名互换(如果有重复前面的会被后面的覆盖)
- array_search($goal,$arr[,$strict])- 检索给定的值,加true则是严格类型检查
- array_reverse($arr[,$preserve_keys]) - 将数组中的元素翻转(前后顺序)
- in_array($goal,$arr[,$strict]) - 判断值是否在数组中
- array_key_exists($key,$arr) - 检索给定的键名是否存在数组中
- array_count_values($arr) - 统计数组中所有值出现的次数
- array_unique($arr[,$sort_flags]) - 删除数组中重复的值
<?php $info = [
'a' => 'apple',
'b' => 'blog',
'c' => 'cat',
'd' => 'dog'
]; echo 'keys:<br>';
//输出info数组的所有键
var_dump(array_keys($info));
echo '<br>';
echo 'values:<br>';
//输出info数组的所有值
var_dump(array_values($info));
echo '<br>'; //转换info数组 键值互换
echo 'flips:<br>';
var_dump(array_flip($info));
echo '<br>'; //搜索apple
echo 'search:<br>';
echo 'apple key is :'.array_search('apple',$info);
echo '<br>'; //元素翻转
echo 'reverse:<br>';
var_dump(array_reverse($info));
echo '<br>'; //检查元素
echo 'in?<br>';
echo 'blog is in $info? '.var_dump(in_array('blog',$info));
echo '<br>'; //检查键
echo 'key in?<br>';
echo 'b is in $info? '.var_dump(array_key_exists('b',$info));
echo '<br>'; //统计值的出现次数
$info[] = 'blog';
$info[] = 'blog';
echo 'value count<br>';
var_dump(array_count_values($info));
echo '<br>'; //删除重复的值
echo 'before unique<br>';
var_dump($info);
echo '<br>after unique<br>';
var_dump(array_unique($info));
运行结果:
5、回调函数
- array_filter($arr[,$callback[,$flag]]) //使用回调函数过滤数组中的元素,如果回调返回true则当前的元素被包含到返回数组中
- array_walk($arr,$callback[,$userdata]) //回调函数处理数组,自定义函数要有两个参数,本函数第三个参数可以作为回调第三个参数返回
- array_map($callback,$arr1[,$arr....]) //可以处理多个数组,每个数组的长度应该相同,传入数组的个数和回调函数参数个数应该一致
示例数组:
$info = [
'a' => 'apple',
'b' => 'blog',
'c' => 'cat',
'd' => 'dog'
];
array_filter();
PHP手册参考:
//array_filter(); //不使用flag
$filter_arr = array_filter($info,function($value){
return strlen($value) == 3;
});
var_dump($filter_arr);
echo '<br>';
//使用flag
$filter_arr = array_filter($info,function($key){
return in_array($key,['a','c']);
},ARRAY_FILTER_USE_KEY);
var_dump($filter_arr);
echo '<br>'; $filter_arr = array_filter($info,function($value,$key){
return in_array($key,['a','c']) && $value == 'apple';
},ARRAY_FILTER_USE_BOTH);
var_dump($filter_arr);
echo '<br>';
输出结果:
array_walk();
PHP手册参考:
//array_walk(); //不使用 userdata
array_walk($info,function($value,$key){
echo "$key:$value ";
});
echo "<br>"; //使用 userdata
array_walk($info,function(&$value,$key,$userdata){
$value = $userdata.'-'.$value;
},'php');
var_dump($info);
echo "<br>";
输出结果:
array_map();
PHP手册参考:
//array_map();
//单个数组
array_map(function($n){
echo "$n ";
},$info);
echo "<br>";
//多个数组
$info_2 = [
'e' => 'egg',
'f' => 'filco',
'g' => 'good'
];
array_map(function($n1,$n2){
echo "1:$n1-2:$n2 ";
},$info,$info_2);
echo '<br>';
运行结果:
6、数组分割
- array_slice($arr,$offset[,$length[,preserve_keys]]) //将数组中的一段取出(数组的分段)
- array_splice($arr,$offset[,$length[,$replacement]]) //将数组中的一段取出,返回的序列从原数组中删除
- array_chunk($arr,$size[,$preserve_keys]) //将一个数组分割成多个
array_slice()
PHP手册参考
array_splice()
PHP手册参考:
array_chunk()
PHP手册:
测试代码:
<?php
$info = [
'a' => 'apple',
'b' => 'blog',
'c' => 'cat',
'd' => 'dog'
]; //array_slice()
echo 'array_slice:<br>';
print_r(array_slice($info,0,3));
echo '<br><hr>'; //array_splice();
echo 'array_splice:<br>';
echo '原数组:<br>';
print_r($info);
echo '<br>';
//替换掉前两位
$tmp = array_splice($info,0,2,['king','queen']);
echo '替换后的数组:<br>';
print_r($info);
echo '<br>';
echo '替换掉数组:<br>';
print_r($tmp);
echo '<br><hr>'; //恢复原数组
$info = [
'a' => 'apple',
'b' => 'blog',
'c' => 'cat',
'd' => 'dog'
];
//array_chunk();
echo 'array_splice:<br>';
echo '替换后的数组:<br>';
$tmp = array_chunk($info,2);
var_dump($tmp);
运行结果:
7、数组运算
- array_sum($arr) 元素求和
- array_merge($arr1[,$arr...]) 数组合并
- array_diff($arr1,$arr2[,$arr....]) 数组求差集 - 在arr1中但不在其他数组中的值
- array_intersect($arr1,$arr2[,$arr...]) 数组求并集 - 在arr1中且在其他数组中的值
测试代码:
<?php
$info = [
'a' => 'apple',
'b' => 'blog',
'c' => 'cat',
'd' => 'dog'
]; $info_2 = [
'e' => 'apple',
'f' => 'egg',
'g' => 'java',
'h' => 'cat'
]; $info_num = [120,10,1]; //array_sum
echo 'array_sum:<br>';
echo array_sum($info_num);
echo '<br>';
echo array_sum($info); //只对元素中的数值进行求和
echo '<br><hr>'; //array_merge
echo 'array_merge:<br>';
print_r(array_merge($info,$info_2,$info_num));
echo '<br><hr>'; //array_diff - 返回在info中但不在其他arr中的值
echo 'array_diff:<br>';
print_r(array_diff($info,$info_2));
echo '<br><hr>'; //array_intersect - 返回在info中也在在其他arr中的值
echo 'array_intersect:<br>';
print_r(array_intersect($info,$info_2));
echo '<br><hr>';
运行结果:
8、数组的栈和队列操作
- array_push($arr,$value[,$...]) - 将一个或多个单元压入数组的末尾(入栈)
- array_pop($arr) - 弹出数组最后一个单元(出栈)
- array_shift($arr) - 将数组开头的单元移出数组
- array_unshift($arr,$value[,$...]) - 在数组开头插入一个或多个单元
9、数组的排序操作
- sort($arr[,$sort_flag]) - 从小到大,忽略键名
- rsort($arr[,$sort_flag]) - 从大到小,忽略键名
- asort($arr[,$sort_flag]) - 从小到大,保留键名
- arsort($arr[,$sort_flag]) - 从大到小,保留键名
- ksort($arr[,$sort_flag]) - 按键名正序排列
- krsort($arr[,$sort_flag]) - 按键名倒序排列
10、其他常用函数
- shuffle($arr) - 打乱数组
PHP常用函数(一):数组常用函数的更多相关文章
- PHP中的数组(二)常用数组处理函数
数组的相关处理函数 一.数组键/值操作有关的函数 1.array_values() 无论是关联的还是索引的返回的都是索引数组 <?php $lamp=array(&quo ...
- PHP数组处理函数的使用array_map(三)
/*函数array_map()函数:多数组回调函数---将回调函数作用到给定数组的单元上 * 1.语法:array array_map ( callback callback, array arr1 ...
- C/C++ 一段代码区分数组指针|指针数组|函数指针|函数指针数组
#include<stdio.h> #include<stdlib.h> #include<windows.h> /* 举列子说明什么是函数指针 */ //以一个加 ...
- JavaSE语法基础(3)---函数、数组
JavaSE语法基础(3)---函数.数组 函数的概念:实现特定功能的一段代码,可反复使用. 函数的出现减少代码冗余,提高代码的复用性,可读性,可维护性,可以使每个功能模块独立起来,方便分工合作. 函 ...
- php数组键值操作和数组统计函数-函数
1.数组函数//作用:提供了很多官方写的很多有用的代码段,提高编写速度 1)数组的键值操作函数 array_values();//获取数组中的值 array_keys();//获取数组中的键 in_a ...
- JS数组常用函数以及查找数组中是否有重复元素的三种常用方法
阅读目录: DS01:常用的查找数组中是否有重复元素的三种方法 DS02:常用的JS函数集锦 DS01.常用的查找数组中是否有重复元素的三种方法 1. var ary = new Array(&qu ...
- 【PHP】最详细PHP从入门到精通(三)——PHP中的数组常用函数汇总
PHP从入门到精通 之PHP中的数组常用函数详解 数组作为PHP中最常用的结构之一,PHP强大的数组函数功能,给数组的相关操作带来了极大的便利.今天给大家介绍的PHP中数组函数,是PHP数组中重要的 ...
- php常用数组array函数实例总结【赋值,拆分,合并,计算,添加,删除,查询,判断,排序】
本文实例总结了php常用数组array函数.分享给大家供大家参考,具体如下: array_combine 功能:用一个数组的值作为新数组的键名,另一个数组的值作为新数组的值 案例: <?php ...
- python 全栈开发,Day51(常用内置对象,函数,伪数组 arguments,关于DOM的事件操作,DOM介绍)
昨日内容回顾 1.三种引入方式 1.行内js <div onclick = 'add(3,4)'></div> //声明一个函数 function add(a,b){ } 2. ...
随机推荐
- vue中computed、metfods、watch的区别
一.computed和methods 我们可以将同一函数定义为一个 method 或者一个计算属性.对于最终的结果,两种方式确实是相同的. 不同的是computed计算属性是基于它们的依赖进行缓存的. ...
- nginx非root安装
nginx非root安装 唯一需要解决的就是指定安装目录 这里使用nginx相关包如下 nginx-1.14.0.tar.gz 安装需要依赖如下2个包 pcre-8.42.tar.gz zlib-1. ...
- VMware虚拟机开机自启动
VMware虚拟机开机自启动 linux 2018年05月09日 08时30分18秒 VMware的命令行语句可以切换到VMware安装目录,使用vmrun.exe --help(windows下)查 ...
- JavaEE第六周
Applet简介 Java Applet简介 最近要使用worldwind java sdk做Applet开发,看了些Applet的资料,为了防止忘记,记录如下: applet是通过<apple ...
- 并查集(POJ1182)
链接:http://poj.org/problem?id=1182 定义一种关系R(x,y),x > y 时 R(x,y) = 2:x = y 时 R(x,y)= 1:x < y 时 R( ...
- Java互联网应用和企业级应用的区别
企业级应用是为了满足企业日常运营所产生的IT应用,其目的是满足企业自己,对交付厂家而言,俗称2B业务:互联网应用则是面向个人用户,俗称2C业务.就个人经验,企业应用主要关注业务服务的能力,针对该企业的 ...
- 简要log4j配置
若排版紊乱可查看我的个人博客原文地址 1. 配置效果 下面的log4j日志配置最终能达到的效果是对于全局日志可以根据级别输入到对应级别的日志文件中,注意低级别的日志文件会同时包含高级别的日志信息,例如 ...
- 数据库更新记录时,记录不存在则创建的sql语句
INSERT INTO 表名 (字段1(主键),字段2,字段3) values (#{value1},#{value2},#{value3}) ON DUPLICATE KEY UPDATE 字段2= ...
- ts文件分析(纯c解析代码)
参考链接: 1. MPEG-2 TS码流分析 https://blog.csdn.net/zhubin215130/article/details/8958567 TS Header PAT PMT ...
- centos7初上手2-安装tomcat服务
上一篇文章说完安装mysql数据库,这篇文章来学习一下tomcat安装 1.先做准备工作,安装jdk,先看服务器上有没有安装相关java文件 下载好1.8版本的安装包,用xftp传到服务器上(根据个人 ...