php学习-数组(一)
数组函数可以对大量性质相同的数据进行存储,排序,插入及删除等操作。
学习任务:
声明数组,输出数组,遍历数组,查询数组中指定元素,获取数组中的最后一个元素。
删除数组中重复的元素。统计数组中元素的个数。
7.2数组的命名规则
(1)数组的名称由一个美元符号开始,第一个字符是字母或者下划线。
(2).标量变量和数组变量不能重名。
(3).数组名称区分大小写。
7.2.1.用户创建数组
<?php
$array[0]="php宝典";
$array[1]="java编程宝典";
$array[2]="VC编程宝典";
print_r($array);
?>;
7.2.2应用函数创建数组
(1).Php中常用的数组函数是array()
应用array()函数定义数组时,可以在函数体中只能给出数组元素值,而不必给出键值。
数组中的索引(key)可以是字符串或数字。如果省略了索引,会自动产生从0开始的整数索引。如果索引是整数,则下一个产生的索引是目前最大的整数索引+1.如果定义了两个完全相同的索引,则后面一个会覆盖前一个。
数组中的个数据元素的数据类型可以不同,也可以是数组类型。
Eg:
<?php
$string_arr =array("PHP"=>"php","JSP"=>"jsp");
print_r($string_arr);
?>
Eg结果:
Array ( [PHP] => php [JSP] => jsp )
7.2.3创建二维数组
利用函数:
Eg:
<?php
$str_arr = array(
"三国演义"=>array("刘备","曹操","孙权")
,"西游记"=>array("孙悟空","猪八戒","沙和尚")
,"水浒传"=>array("宋江","吴用","林冲")
);
print_r($str_arr);
?>
Eg结果:
Array ( [三国演义] =>Array ( [0] => 刘备 [1] => 曹操 [2] => 孙权 ) [西游记] => Array ( [0] => 孙悟空 [1] => 猪八戒 [2] => 沙和尚 ) [水浒传] => Array ( [0]=> 宋江 [1] => 吴用 [2] => 林冲 ) )
7.3数组的类型。
7.3.1.数组分为两种:数字索引数组和关联数组
(1).数字索引数组
数字索引数组的下标有数字组成,默认是0开始,每个数字对应数组元素中的位置。
数组中每个实体都包含两项:键和值,可以通过相应的键值拿到对应的数组元素。
(2).关联数组
如果一个数组的项的键不是数字,关联数组下标使用字符串和数值混合形式形成。那么这个数组就是关联数组。
7.4遍历输出数组
7.4.1遍历数组
1.foreach遍历数组
Eg:
<?php
$str_arr = array(
"三国演义"=>array("刘备","曹操","孙权")
,"西游记"=>array("孙悟空","猪八戒","沙和尚")
,"水浒传"=>array("宋江","吴用","林冲")
);
foreach($str_arr as $key=>$value){
echo "<br>";
print($key);
foreach($str_arr[$key] as$key1=>$value1){
echo $str_arr[$key][$key1];
};
};
?>
Eg结果:
三国演义刘备曹操孙权
西游记孙悟空猪八戒沙和尚
水浒传宋江吴用林冲
(2)通过数组函数list()和each()遍历数组
List()函数将数组中的值赋给一些变量。、
Each()函数返回数组中当前指针位置的键名和对应的值,并向前移动数组指针。
遍历方法:
首先应用each()函数获取数组中当前元素的键名和值,然后将返回的数组元素通过list()函数赋给指定的变量。最后通过while语句进行输出。
Eg:
<?php
$str_arr= array(
"三国演义"=>array("刘备","曹操","孙权")
,"西游记"=>array("孙悟空","猪八戒","沙和尚")
,"水浒传"=>array("宋江","吴用","林冲")
);
while(list($key,$value)=each($str_arr)){
echo "$key".":";
print_r($value);
echo "<br>";
};
?>
Eg结果:
三国演义:Array ( [0] => 刘备 [1] => 曹操 [2] => 孙权 )
西游记:Array ( [0] => 孙悟空 [1] => 猪八戒 [2] => 沙和尚 )
水浒传:Array ( [0] => 宋江 [1] => 吴用 [2] => 林冲 )
(3).通过for循环语句遍历数组中的元素
Eg:
<?php
$str_arr= array(
0=>array("刘备","曹操","孙权")
,1=>array("孙悟空","猪八戒","沙和尚")
,2=>array("宋江","吴用","林冲")
);
for($i = 0;$i < count($str_arr);$i++)
{
for($j = 0;$j <count($str_arr[$i]);$j++)
{
echo $str_arr[$i][$j];
}
echo "<br>";
}
?>
Eg结果:
刘备曹操孙权
孙悟空猪八戒沙和尚
宋江吴用林冲
(4)输出数组元素
其他的可以进行数组输出的函数就是print_r和echo
7.5数组函数
7.5.1统计数组元素个数
(1).int count(array);
7.5.2向数组中添加元素
Intarray_push(array array,mixed var,[]);
参数array为指定的数组,参数var是压入数组中的值。
7.5.3获取数组中最后一个元素
array_pop(array array);
7.5.4删除数组中的重复元素
Array_unique();函数。将值作为字符串进行排序,然后对每个值只保留第一个键名,忽略所有后面的键名。
Eg:
<?php
$array = array('第一个元素','第二个元素','第三个元素','第四个元素','第四个元素');
print_r($array);
$array = array_unique($array);
print_r($array);
?>
Eg结果:
Array ( [0] => 第一个元素 [1] => 第二个元素 [2] => 第三个元素 [3] => 第四个元素 [4] => 第四个元素 )
Array ( [0] => 第一个元素 [1] => 第二个元素 [2] => 第三个元素 [3] => 第四个元素 )
7.5.5 获取数组中指定元素的键名
array_search(要搜索的值,搜索的数组,是否检查这个搜索值的类型)函数,
这里不能返回多个键值,而只是返回第一要搜索值的键值。
array_keys (array array,mixed value,[,boolstrict])
这里可以返回相同值的所有的键名;
php学习-数组(一)的更多相关文章
- Shell脚本学习-数组
跟着RUNOOB网站的教程学习的笔记 Shell数组 数组中可以存放多个值,Bash Shell只支持一维数组(不支持多维数组),初始化时不需要定义数组大小(与PHP类似). 与大部分编程语言类似,数 ...
- 09-java学习-数组-冒泡排序-选择排序-数组工具类编写-查找-扩容
数组的排序算法 查找算法 数组协助类Arrays的学习和使用 数组的扩容
- c++学习-数组
int a[10]; //是个元素,在windows下回报错,linux会输出一个随机数 int a[10]={1,2}; //初始化,其他的为0 数组越界: 为了调高效率, 编译器不会对数组越界做检 ...
- Knockout.Js官网学习(数组observable)
前言 如果你要探测和响应一个对象的变化,你应该用observables. 如果你需要探测和响应一个集合对象的变化,你应该用observableArray . 在很多场景下,它都非常有用,比如你要在UI ...
- Scala学习——数组/映射/元组
[<快学Scala>笔记] 数组 / 映射 / 元组 一.数组 1.定长数组 声明数组的两种形式: 声明指定长度的数组 val 数组名= new Array[类型](数组长度) 提供数组初 ...
- Java学习-数组
1.数组的是Object的直接子类,它属于“第一类对象”,但是它又与普通的java对象存在很大的不同,类名为:[I 一维数组:[I 二维数组:[[I 三维数组:[[[I 2.[代表了数组的维度,一个[ ...
- java学习——数组
元素类型[] 数组名 = new 元素类型[元素个数或数组长度]; array 为引用数据类型|-数组数据类型 | 内存结构:程序在运行时,需要在内存中的分配空间.为了提高运行的效率,有对空间进行不同 ...
- Java小知识点学习--------数组和位运算小知识点
位运算符: >>>无符号右移运算符,无符号右移的规则和右移的规则同样,仅仅是在填充时,无论原来是正数还是负数都用0来补充. 数组: arr1=arr2; 此时两个数组变量都会同一时 ...
- Scala学习---数组
1.编写一段代码,将a设置为一个n个随机整数的数组,要求随机数介于0(包含)和n(不包含)之间 /** * Created by vito on 2017/1/11. */ object ex1 { ...
随机推荐
- java设计模式案例详解:观察者模式
观察者模式的应用场景: 1. 对一个对象状态的更新,需要其他对象同步更新,而且其他对象的数量动态可变. 2. 对象仅需要将自己的更新通知给其他对象而不需要知道其他对象的细节. 举个例子说明,这个例子讲 ...
- Day02——widow对象
window - 计时器 1、setTimeout()可以用来在指定的时间之后单次调用函数. setTimeount(f,1000);//一秒后调用函数f clearTimeout();取消函数的执行 ...
- JPA 系列教程1-环境搭建
JPA JPA全称Java Persistence API. JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中. Hibernate3.2+.Top ...
- Intersecting Lines POJ 1269
题目大意:给出两条直线,每个直线上的两点,求这两条直线的位置关系:共线,平行,或相交,相交输出交点. 题目思路:主要在于求交点 F0(X)=a0x+b0y+c0==0; F1(X)=a1x+b1y+c ...
- druid-1.0.13 数据库配置文件密码加密
1.cmd 切换到druid目录 我的是C:\tool\apache-tomcat-7.0.67\webapps\projectA\WEB-INF\lib 2.运行命令 java -cp druid ...
- dhcpv6开源软件配置
ISC-dhcp server for IPv6 1. 下载源码:http://www.isc.org/software/dhcp 2.安装:最好以root身份安装,否则会permission de ...
- 在win7 64bit系统安装QC软件
当本机系统不再QC软件支持的系统上,可以在setup右键选择兼容性选择能支持安装的系统, 在JBOSS页面,选择该服务器,用户名输入本机的用户名和密码,如果没有配置域输入计算机名. 如果没有装IIS, ...
- C语言版的16进制与字符串互转函数
http://www.cnblogs.com/nio-nio/p/3309367.html /* // C prototype : void StrToHex(BYTE *pbDest, BYTE * ...
- cocos2d3.8.1 使用prebuild提升发布android速度
1.生成cocos prebuild库 cocos gen-libs -m debug或 cocos gen-libs -m release 2.使用命令创建test项目 cocos new test ...
- hdu_3549_Flow Problem(最大流)
题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=3549 题意:求1到n的最大流 题解:模版题,直接上Claris的ISAP,效率是一般dfs的十倍,OR ...