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、键值操作函数

<?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、回调函数

  示例数组:

$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()

  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、数组运算

  测试代码:

  

<?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、数组的栈和队列操作

9、数组的排序操作

10、其他常用函数 

PHP常用函数(一):数组常用函数的更多相关文章

  1. PHP中的数组(二)常用数组处理函数

    数组的相关处理函数    一.数组键/值操作有关的函数        1.array_values()   无论是关联的还是索引的返回的都是索引数组 <?php $lamp=array(&quo ...

  2. PHP数组处理函数的使用array_map(三)

    /*函数array_map()函数:多数组回调函数---将回调函数作用到给定数组的单元上 * 1.语法:array array_map ( callback callback, array arr1 ...

  3. C/C++ 一段代码区分数组指针|指针数组|函数指针|函数指针数组

    #include<stdio.h> #include<stdlib.h> #include<windows.h> /* 举列子说明什么是函数指针 */ //以一个加 ...

  4. JavaSE语法基础(3)---函数、数组

    JavaSE语法基础(3)---函数.数组 函数的概念:实现特定功能的一段代码,可反复使用. 函数的出现减少代码冗余,提高代码的复用性,可读性,可维护性,可以使每个功能模块独立起来,方便分工合作. 函 ...

  5. php数组键值操作和数组统计函数-函数

    1.数组函数//作用:提供了很多官方写的很多有用的代码段,提高编写速度 1)数组的键值操作函数 array_values();//获取数组中的值 array_keys();//获取数组中的键 in_a ...

  6. JS数组常用函数以及查找数组中是否有重复元素的三种常用方法

    阅读目录: DS01:常用的查找数组中是否有重复元素的三种方法 DS02:常用的JS函数集锦 DS01.常用的查找数组中是否有重复元素的三种方法  1. var ary = new Array(&qu ...

  7. 【PHP】最详细PHP从入门到精通(三)——PHP中的数组常用函数汇总

     PHP从入门到精通 之PHP中的数组常用函数详解 数组作为PHP中最常用的结构之一,PHP强大的数组函数功能,给数组的相关操作带来了极大的便利.今天给大家介绍的PHP中数组函数,是PHP数组中重要的 ...

  8. php常用数组array函数实例总结【赋值,拆分,合并,计算,添加,删除,查询,判断,排序】

    本文实例总结了php常用数组array函数.分享给大家供大家参考,具体如下: array_combine 功能:用一个数组的值作为新数组的键名,另一个数组的值作为新数组的值 案例: <?php ...

  9. python 全栈开发,Day51(常用内置对象,函数,伪数组 arguments,关于DOM的事件操作,DOM介绍)

    昨日内容回顾 1.三种引入方式 1.行内js <div onclick = 'add(3,4)'></div> //声明一个函数 function add(a,b){ } 2. ...

随机推荐

  1. CPU、GPU、CUDA、cuDNN

    CPU擅长逻辑处理控制,GPU适合高强度的并行计算任务,为什么会存在这种差别?今天搜集了些相关资料,摘抄总结如下. 一.什么是GPU GPU这个概念是由Nvidia公司于1999年提出的.GPU是显卡 ...

  2. 解决Charles https抓包显示<unknown>

    用mac电脑开发安卓的都应该知道青花瓷吧~(不知道的都是小菜鸡,邪恶.jpg) Charles类似Windows版的Fiddler(没用过Fiddler的都是小菜鸡中的战斗机,嘲笑.png),基本用法 ...

  3. js中new函数后带括号和不带括号的区别

    用new创建构造函数的实例时,通常情况下new 的构造函数后面需要带括号(譬如:new Parent()). 有些情况下new的构造函数后带括号和不带括号的情况一致,譬如: function Pare ...

  4. dataset数据来源方式两种,页面展示

    这两种方式都能获取到报表类别数据. <%--ds 数据源来自JavaBean--%><model:dataset id="ds"> <model:re ...

  5. 结对编程ending-我和洧洧的碎碎念

    应该是第一次和队友分工合作去完成一个项目,其中也经历了跳进不少坑又被拉回来的过程,总体来说这对于我俩也的确是值得纪念的一次经历. 我的碎碎念时间…… 对比个人项目和结对编程项目二者需求,前者重在面对不 ...

  6. redis应用--位图

    在我们平时开发过程中,会有一些 bool 型数据需要存取,比如用户一年的签到记录,签了是 1,没签是 0,要记录 365 天.如果使用普通的 key/value,每个用户要记录 365 个,当用户上亿 ...

  7. Linux常见命令快捷方式

    命令行编辑的辅助操作: Tab健:自动补齐 Ctrl +U :清空至首行 Ctrl +K:  清空至尾行 Ctrl +L:(或者clear) 清屏 Ctrl +C:  取消执行命令 获取帮助命令: 内 ...

  8. Asp .Net Core Spa (二) - 服务器渲染1

    Server Side Rendering 服务器渲染是各 Spa 项目目前很热衷于解决的一个问题,毕竟针对SEO和首次加载优化 .Net Core SPA 服务器渲染 将分为 两篇: 第一篇 主要分 ...

  9. 零基础IDEA整合SpringBoot + Mybatis项目,及常见问题详细解答

    开发环境介绍:IDEA + maven + springboot2.1.4 1.用IDEA搭建SpringBoot项目:File - New - Project - Spring Initializr ...

  10. jQuery 命名空间的使用

    jQuery 命名空间的使用: 1.利用 trigger 触发子元素带命名空间的事件,那么父元素带相同命名空间的事件也会被触发,而父元素没有命名空间的事件不会被触发. 2.利用 trigger 触发子 ...