PHP数组和数据结构(上)
1.数组的声明
两种方法:
- 直接给数组元素赋值
- 使用array()函数声明
说明:
(1)索引数组的下标可以是非连续的值,只要在初始化时指定非连续的下标值即可
- 如果指定的下标值已经声明过,则属于对变量重新赋值。
- 如果没有指定索引值的元素与指定索引值的元素混在一起赋值时,没有指定索引值的元素默认索引值,将紧跟指定索引值元素中最高的索引值递增。
代码示例:
- <?php
- $a[]=1;
- $a[10]="高某";
- $a[]="A公司"; // 此时A公司的下标成为11
- $a[]="北京市"; //北京市的下标为12
- $a[]="(010)987654321"; //下标是13
- $a[10]="gao@qq.com";//下标是11,下标11的值改为gao@qq.com
- $a[]="IT"; //IT的下标值为14
- var_dump($a);
- ?>
运行结果:
(2)使用array()函数声明
使用array()语言构造来新建一个数组,它接受一定数量用逗号分隔的key => value参数对
代码示例:
- <?php
- //如果不使用 => 符号指定下标,默认为索引数组。默认的索引值也是从0开始一次增加
- $a=array(1,"高某","A公司","北京市","(010)987654321","gao@qq.com");
- //使用 => 可以指定非连续的索引值
- $a1=array(1,10=>"高某","A公司","北京市",10=>"(010)987654321","gao@qq.com");
- var_dump($a);
- echo "<br/>";
- var_dump($a1);
- ?>
运行结果:
2.数组元素的访问
代码示例:
- <?php
- $a=array(1,"高某","A公司","北京市","(010)987654321","gao@qq.com");
- //使用 => 可以指定非连续的索引值
- $a1=array('xiaoming'=> "IT",'xiaohei'=>"english",'xiaolan'=>"chinese");
- //直接指定元素下标
- echo $a[1];
- echo "<br/>";
- //指定键:
- echo $a1['xiaohei'];
- ?>
运行结果:
3.二维数组
(1)数字索引方式
- $a=array(array(1,"高某","A公司","北京市","(010)987654321","gao@qq.com"),
- array(2,"李某","B公司","上海市","(010)987654323","li@qq.com"),
- array(3,"杨某","C公司","济南市","(010)987654324","yang@qq.com"),
- array(4,"孙某","D公司","威海市","(010)987654325","sun@qq.com")
- );
(2)使用array()函数
- $a2=array("北京联系人"=>array(1,"高某","A公司","北京市","(010)987654321","gao@qq.com"),
- "上海联系人"=>array(2,"李某","B公司","上海市","(010)987654323","li@qq.com"),
- "济南联系人"=>array(3,"杨某","C公司","济南市","(010)987654324","yang@qq.com")
- );
(3)二维数组的访问
- <?php
- $a=array(array(1,"高某","A公司","北京市","(010)987654321","gao@qq.com"),
- array(2,"李某","B公司","上海市","(010)987654323","li@qq.com"),
- array(3,"杨某","C公司","济南市","(010)987654324","yang@qq.com"),
- array(4,"孙某","D公司","威海市","(010)987654325","sun@qq.com")
- );
- echo $a[1][1];
- echo "<br/>";
- $a2=array("北京联系人"=>array(1,"高某","A公司","北京市","(010)987654321","gao@qq.com"),
- "上海联系人"=>array(2,"李某","B公司","上海市","(010)987654323","li@qq.com"),
- "济南联系人"=>array(3,"杨某","C公司","济南市","(010)987654324","yang@qq.com")
- );
- echo $a2["上海联系人"][1];
- ?>
4 .数组的遍历
(1)for循环遍历
- <?php
- $a=array(array(1,"高某","A公司","北京市","(010)987654321","gao@qq.com"),
- array(2,"李某","B公司","上海市","(010)987654323","li@qq.com"),
- array(3,"杨某","C公司","济南市","(010)987654324","yang@qq.com"),
- array(4,"孙某","D公司","威海市","(010)987654325","sun@qq.com")
- );
- //count是得到一维长度
- echo count($a)."<br/>";
- for($i=0;$i<count($a);$i++){
- for ($j=0;$j<count($a[$i]);$j++){
- echo $a[$i][$j];
- }
- echo "<br/>";
- }
- ?>
运行结果:
(2)foreach遍历
- <?php
- $a[]=1;
- $a[10]="高某";
- $a[]="A公司"; // 此时A公司的下标成为11
- $a[]="北京市"; //北京市的下标为12
- $a[]="(010)987654321"; //下标是13
- $a[10]="gao@qq.com";//下标是11,下标11的值改为gao@qq.com
- $a[]="IT"; //IT的下标值为14
- foreach ($a as $value){
- echo $value."<br>";
- }
- ?>
运行结果:
- <?php
- $a=array(
- "ID"=>"1",
- "name"=>"xiaohua",
- "city"=>"shanghai",
- "job"=>"IT"
- );
- foreach ($a as $key=>$value){
- echo "<dd>$key:$value<dd>";
- }
- ?>
运行结果:
PHP数组和数据结构(上)的更多相关文章
- 大数据技术之_16_Scala学习_07_数据结构(上)-集合
第十章 数据结构(上)-集合10.1 数据结构特点10.1.1 Scala 集合基本介绍10.1.2 可变集合和不可变集合举例10.2 Scala 不可变集合继承层次一览图10.2.1 图10.2.2 ...
- PHP08 数组和数据结构
学习要点 数组的分类 数组的定义 数组的遍历 预定义数组 数组的相关处理函数 PHP操作数组需要注意的细节 数组的分类 关于PHP数组 由于PHP是弱类型的编程语言,所以PHP数组中的数组变量可以存储 ...
- LeetCode刷题总结-数组篇(上)
数组是算法中最常用的一种数据结构,也是面试中最常考的考点.在LeetCode题库中,标记为数组类型的习题到目前为止,已累计到了202题.然而,这202道习题并不是每道题只标记为数组一个考点,大部分习题 ...
- 一篇文章让你了解动态数组的数据结构的实现过程(Java 实现)
目录 数组基础简单回顾 二次封装数组类设计 基本设计 向数组中添加元素 在数组中查询元素和修改元素 数组中的包含.搜索和删除元素 使用泛型使该类更加通用(能够存放 "任意" 数据类 ...
- C语言指针和数组知识总结(上)
C语言指针和数组知识总结(上) 一.指针的基础 1.C语言中,变量的值能够通过指针来改变,打印指针的语句符号可以是: %08x 2.指针的本质 指针的本质就是变量,那么既然是变量,那么一定会分配地址 ...
- php数组·的方法-数组与数据结构
/*数组与数据结构*/ //shuffle() 随机打乱数组 //array_push() 数组末尾添加元素 //array_pop() 数组末尾删除元素 //array_shift() 数组首位删除 ...
- 5_PHP数组_3_数组处理函数及其应用_8_数组与数据结构
以下为学习孔祥盛主编的<PHP编程基础与实例教程>(第二版)所做的笔记. 数组与数据结构 1. array_push() 函数 程序: <?php $stack = array(&q ...
- 2019.4.11 一题 XSY 1551 ——广义后缀数组(trie上后缀数组)
参考:http://www.mamicode.com/info-detail-1949898.html (log2) https://blog.csdn.net/geotcbrl/article/de ...
- 10. Scala数据结构(上)-集合操作
10.1 数据结构特点 10.1.1 Scala集合基本介绍 uml => 统一建模语言 1) Scala同时支持不可变集合和可变集合,不可变集合可以安全的并发访问 两个主要的包 不可变集合:s ...
随机推荐
- 去掉每行的特定字符py脚本
百度下载一个脚本的时候遇到那么一个情况.每行的开头多了一个空格.https://www.0dayhack.com/post-104.html 一个个删就不要说了,很烦.于是就有了下面这个脚本. #! ...
- postman测试express restful接口
安装express及postman var express = require('express') var app = express(); var calculation = require('. ...
- Java的9种基本数据类型的大小,以及他们的封装类
由于java程序是运行在虚拟机之上的,所以java的基本数据类型的大小是确定的,不会随着操作系统的位数的改变而改变. 在计算机中,存储的是0,1,0,1这样的二进制位,表示为bit,1Byte = 8 ...
- Caffe学习笔记2
Caffe学习笔记2-用一个预训练模型提取特征 本文为原创作品,未经本人同意,禁止转载,禁止用于商业用途!本人对博客使用拥有最终解释权 欢迎关注我的博客:http://blog.csdn.net/hi ...
- java基础 流程控制和条件语句,循环语句
顺序结构 程序的顺序结构: 如果代码里没有流程控制,程序是按照书写的格式从上而下一行一行执行的, 一条语句执行完之后继续执行下一条语句,中间没有判断和跳转,直到程序的结束. if语句 if语句使用bo ...
- 给windows设置隐藏文件夹的方法
cls @ECHO OFF title Folder Private if EXIST "HTG Locker" goto UNLOCK if NOT EXIST Private ...
- 为什么要用Jedis连接池+浅谈jedis连接池使用
为什么要使用Jedis连接池 Redis作为缓存数据库理论上和MySQL一样需要客户端和服务端建立起来连接进行相关操作,使用MySQL的时候相信大家都会使用一款开源的连接池,例如C3P0.因为直连会消 ...
- hit-testing机制介绍
1.简介 寻找处理触摸事件的view的过程为hit-testing,找到的能够处理触摸事件的view叫做hit-test view. 2.机制介绍 假设下图为我们的手机屏幕,当我们假设点击了view ...
- 浅谈Javascript设计模式
什么是模式 模式是一种可复用的解决方案,可用于解决软件设计中遇到的常见问题. 也就是说用来解决常见问题的可复用的解决方案. 常见的js设计模式 Constructor(构造器)模式 Construct ...
- jstorm系列-1:入门
一. Storm整体介绍 Storm 是一个类似Hadoop MapReduce的系统, 用户按照指定的接口实现一个任务,然后将这个任务递交给JStorm系统,Jstorm将这 ...