PHP 的数组

数组就是一组数据的集合,把一系列数据组织起来。如果变量是存储单个值的容器,那么数组就是存储多个值的容器。数组每个实体包含一个键和一个值。

PHP的数组概念和python的元组和字典类似。PHP的索引数组对应python的元组,PHP的关联数组对应python的字典。

本文包含

  1. 数组声明
  2. 数组输出
  3. 多维数组
  4. 遍历数组
  5. 字符串和数组的转换
  6. 统计数组中元素的个数
  7. 查询数组中指定的元素
  8. 获取数组中最后一个元素
  9. 向数组中添加元素
  10. 删除数组中重复的元素

1. 数组声明:应用array()函数来声明数组;

$name=array("1"=>"ding","2"=>"mo","3"=>"mo");
$name1=array("first"=>"ding","second"=>"mo","3"=>"mo");

如果数组的键值是数组索引,那么就是数值索引数组,例如$name;

如果数组的键值是数值或者字符的混合索引,那么就是关联索引数组,例如$name1;

2. 数组输出:用print_r($array)输出数组;

print_r($name)

结果为:

array([1]=>ding [2]=>mo [3]=>mo)

3. 多维数组:如果一维数组的一个元素是一个数组,那么这个数组就是二维数组。同理,可以构造多维数组。

二维数组:

$str=array("book"=>array("english","history","math"),

                    "name"=>array("a"=>"ding","b"=>"mo","c"=>"mo"));

4. 数组遍历:

4.1 用foreach结构遍历数组:

foreach($name as $na) {
    eacho $na;
}

4.2 用list()函数遍历数组:list()函数只能应用于数值索引的数组,并且索引从0开始。

list($a,$b,$c)=$name;
echo "my name is $a $b $c";

输出的结果为

my name is ding momo.

5. 字符串和数组的转换:

explode()函数将字符串转换成数组;

implode()函数将数组转换成字符串;

$name="ding, mo, mo"
$str=explode(", ", ",$name");
print_r($str);

结果为:Array([0]=>ding [1]=>mo [2]=>mo).

$name1=array("ding","mo","mo");
$str=implode("",",$name1");
echo $str;

结果为:ding mo mo.

6. 统计数组中元素的个数:count()函数统计数组中元素的个数。

count($array,COUNT_RECURSIVE);

如果添加COUNT_RECURSIVE就会递归的统计多维的元素个数。

7. 查询数组中指定的元素:array_search()函数用于在数组中搜索给定的值,找到后返回键值,否则返回false,在php4.2.0之前没找到会返回null。

array_search($str,$array,strick);

$str是要搜索的值,$array是被搜索的数组,strick是可选参数,如果strick=true,还可以返回数组的类型。

8. 获取数组中最后一个元素:array_pop()

array_pop()函数获取数组的最后一个元素并将数组的最后一个元素删除;

9. 向数组中添加元素:array_push()

array_push($array, $str)

array_push()函数将向数组的末尾添加一个元素;

10. 删除数组中重复的元素:array_unique()

array_unique($array); 

将值作为字符串排序,然后对每个值只保留第一个键值,达到删除数组重复元素的目的。

-------End-------

本文分享自微信公众号 - 小末快跑(Faster_Future),作者:小末快跑

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-05-04

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 什么是CPK,有什么用?

    CPK:Complex Process Capability index 制造过程能力指标。顾名思义,是用来衡量制造过程能力的一个指标。

    小末快跑
  • MySQL视图,存储过程和触发器的使用

    在视图创建后,可以用表的基本操作来使用视图,进行SELECT,WHERE,ORDER BY,联结等操作。视图仅仅是用来查看存储在别处的数据的一种工具而不是一个表...

    小末快跑
  • JS(javascript)入门

    起因是在用python的Django做一个页面,需要对原先的文章进行修改,怎么在文本框中填充原先的数据?由于文本框使用了富文本编辑器,发现不只是简单的在inpu...

    小末快跑
  • 死磕 java集合之CopyOnWriteArrayList源码分析

    CopyOnWriteArrayList是ArrayList的线程安全版本,内部也是通过数组实现,每次对数组的修改都完全拷贝一份新的数组来修改,修改完了再替换掉...

    zhisheng
  • 死磕 java集合之CopyOnWriteArrayList源码分析

    CopyOnWriteArrayList是ArrayList的线程安全版本,内部也是通过数组实现,每次对数组的修改都完全拷贝一份新的数组来修改,修改完了再替换掉...

    彤哥
  • VBA数组(三)数组赋值

    大家好,上节介绍了在使用数组之前如何声明数组,本节就来介绍静态数组如何赋值。(动态数组会单独一节讲解)

    无言之月
  • Java Arrays工具类的使用

    Arrays 类 java.util.Arrays类能方便地操作数组,它提供的所有方法都是静态的。具有以下功能: 给数组赋值:通过fill方法。 对数组...

    郭耀华
  • Java Arrays工具类的使用

    郭耀华
  • JavaScript —— Array 使用汇总

    由于 length 和 prototype 两个属性比较通用,所以这里不过多的介绍。

    Originalee
  • java集合之CopyOnWriteArrayList源码分析

    CopyOnWriteArrayList是ArrayList的线程安全版本,内部也是通过数组实现,每次对数组的修改都完全拷贝一份新的数组来修改,修改完了再替换掉...

    用户4143945

扫码关注云+社区

领取腾讯云代金券