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数组和数据结构(上)的更多相关文章

  1. 大数据技术之_16_Scala学习_07_数据结构(上)-集合

    第十章 数据结构(上)-集合10.1 数据结构特点10.1.1 Scala 集合基本介绍10.1.2 可变集合和不可变集合举例10.2 Scala 不可变集合继承层次一览图10.2.1 图10.2.2 ...

  2. PHP08 数组和数据结构

    学习要点 数组的分类 数组的定义 数组的遍历 预定义数组 数组的相关处理函数 PHP操作数组需要注意的细节 数组的分类 关于PHP数组 由于PHP是弱类型的编程语言,所以PHP数组中的数组变量可以存储 ...

  3. LeetCode刷题总结-数组篇(上)

    数组是算法中最常用的一种数据结构,也是面试中最常考的考点.在LeetCode题库中,标记为数组类型的习题到目前为止,已累计到了202题.然而,这202道习题并不是每道题只标记为数组一个考点,大部分习题 ...

  4. 一篇文章让你了解动态数组的数据结构的实现过程(Java 实现)

    目录 数组基础简单回顾 二次封装数组类设计 基本设计 向数组中添加元素 在数组中查询元素和修改元素 数组中的包含.搜索和删除元素 使用泛型使该类更加通用(能够存放 "任意" 数据类 ...

  5. C语言指针和数组知识总结(上)

    C语言指针和数组知识总结(上) 一.指针的基础 1.C语言中,变量的值能够通过指针来改变,打印指针的语句符号可以是:  %08x 2.指针的本质 指针的本质就是变量,那么既然是变量,那么一定会分配地址 ...

  6. php数组·的方法-数组与数据结构

    /*数组与数据结构*/ //shuffle() 随机打乱数组 //array_push() 数组末尾添加元素 //array_pop() 数组末尾删除元素 //array_shift() 数组首位删除 ...

  7. 5_PHP数组_3_数组处理函数及其应用_8_数组与数据结构

    以下为学习孔祥盛主编的<PHP编程基础与实例教程>(第二版)所做的笔记. 数组与数据结构 1. array_push() 函数 程序: <?php $stack = array(&q ...

  8. 2019.4.11 一题 XSY 1551 ——广义后缀数组(trie上后缀数组)

    参考:http://www.mamicode.com/info-detail-1949898.html (log2) https://blog.csdn.net/geotcbrl/article/de ...

  9. 10. Scala数据结构(上)-集合操作

    10.1 数据结构特点 10.1.1 Scala集合基本介绍 uml => 统一建模语言 1) Scala同时支持不可变集合和可变集合,不可变集合可以安全的并发访问 两个主要的包 不可变集合:s ...

随机推荐

  1. 今天安装了arch,感觉不错,这速度可以

    虽然没有想想中的那么那么快,不过已经可以了 总结一下遇到的问题以及i自己安装的软件 1.u盘硬盘不能自动挂载 安装gvfs 2.不能读写挂载 安装ntfs-3g 3.时间不对 照wiki上的说 #ln ...

  2. 禁用 Cortana 的解决办法

    1. GPedit.msc 2. 然后在本地组策略编辑器中,点击“用户配置”中的“管理模版”,接着双击右侧的“Windows 组件”. 3. 下拉滚动条,并找到“文件资源管理器”,双击进入. 找到“在 ...

  3. SQL中char、nchar、varchar、nvarchar、text概述【转】

    1. char char是定长的,也就是当你输入的字符小于你指定的数目时,char(8),你输入的字符小于8时,它会再后面补空值.当你输入的字符大于指定的数时,它会截取超出的字符. 2. nchar ...

  4. linux sort排序命令

    1 sort的工作原理 sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出. 2 sort的-u选项 在输出行中去除重复行. $ ...

  5. idea+spring+springmvc+mybatis+mybatis+maven

    使用SSM(Spring,SpringMVC和Mybatis) 1.1.Spring Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johns ...

  6. VMware无法识别USB设备

    VMware虚拟机开始还能识别USB设备/U盘,突然就不行了,在网上找了好久,提供的方法大致如下: 1.   首先Ctrl+R启动运行,输入services.msc,找到一个VMware USB dr ...

  7. IE6/IE7下:inline-block不兼容的问题

    IE6/IE7下对display:inline-block的支持性不好.    1.inline元素的display属性设置为inline-block时,所有的浏览器都支持:    2.block元素 ...

  8. Jmeter接口测试示例

    如果是Web,需要使用badboy进行录制,今天讲的是接口,因此可以不用录制. (1)新建测试计划 (2)添加http请求默认值 (3)添加http信息头管理器 (4)添加token的正则表达式:&q ...

  9. 虚拟存储管理中几种缺页中断算法(最佳置换法OPT)

    缺页中断就是要访问的页不在主存,需要操作系统将其调入主存后再进行访问. 在进行内存访问时,若所访问的页已在主存,则称此次访问成功: 若所访问的页不在主存,则称此次访问失败,并产生缺页中断. 最佳置换法 ...

  10. java的装饰设计模式

    类似python中的装饰器. 示例: public class Test5 { public static void main(String[] args) { Worker w = new Work ...