php基础之三 数组
一、正则表达式:
1. "/"代表界定符, "^"代表开始符号 "&"结束符号
eg: $reg="/(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}/"; //手机号码表达式
$str="只鹅历18654434572史kdkjfhkj独守空房农家13574382098肥fvhhfvhh";
echo preg_replace($reg,"#",$str); //将字符串$str按照正则表达式$reg替换成#
答案显示为:只鹅历#史kdkjfhkj独守空房农家#肥fvhhfvhh
2. echo preg_split($reg,$str); //将字符串按照正则表达式拆分
3. preg_match($reg,$str,$arr); //匹配字符串中满足正则表达式的第一个数据
var_dump($arr);
preg_match_all($reg,$str,$arr); //匹配字符串中满足正则表达式的所有数据
var_dump($arr);
二、数组:
1. 定义:
定义方式一:简单定义
$arr = array(1,2,3,4,5);
定义方式二:赋值定义:
$arr1[0]=1;
$arr1[1]=2;
var_dump($arr1);
2.分类:分为两类
2.1 索引数组:
$arr=array(1,2,3,4,5);
echo $arr[0];
2.2 关联数组:
$arr=array("one"=>5,"two"=>10);
echo $arr["two"];
php数组特点:里面可以存储任意类型的数据;长度可以变化;
3. 遍历数组:
$arr = array("aa","bb","cc",5,"dd",10);
$arr = array ("a"=>10,"b"=>20,"c"=>"hello");
3.1 for循环遍历:不能遍历关联数组
for($i=0;$i<count($arr);$i++)
{
echo $arr[$i]."<br>";
}
3.2 foreach 遍历:可以遍历关联数组
foreach($arr as $value)
{
echo $value."<br>";
}
foreach ($arr as $key=>$value) //遍历key和对应数值
{
echo $key."--".$value."<br>";
}
3.3 each()函数:
$arr = array ("a"=>10,"b"=>20,"c"=>"hello");
var_dump(each($arr)); //返回数组的key和value值 第一次返回第一组数值
var_dump(each($arr)); //第二次返回第二组数值
var_dump(each($arr)); //第三次返回第三组数值
3.4 list()函数: 出现在等号左边,十分特殊,只能遍历索引数组
$arr = array("aa","bb","cc",5,"dd",10);
list($a,$b,$c)=$arr;
echo $a; //将数组里的值分配给list函数里的变量
each()和list()结合起来遍历数组:
while(list($key,$value)=each($arr))
{
echo "{$key}--{$value}<br>";
}
3.5 使用指针遍历数组:
echo current($arr); //取当前指针指向位置的value值
echo key($arr); //取当前指针指向位置的key值
echo next($arr); //将指针向下调
echo prev($arr); //将指针往上调
echo end($arr); //将指针指向最后位置
echo reset($arr); //将指针重置,也就是指向第一个
a. while(next($arr))
{
echo key($arr)."--".current($arr)."<br>"; //第一个索引[0]无法显示
}
b. do
{
echo key($arr)."--".current($arr)."<br>";
}
while(next($arr))
4. 预定义数组:
var_dump($_SERVER);
var_dump($_ENV);
var_dump($_GET); //存放传过来的值 get,post
var_dump($_POST);
$_REQUEST;
$_FILES; //处理文件
$_SESSION;
$_COOKIE;
5. 数组常用函数:
$arr = array("aa","bb","cc",5,5,"dd",10);
5.1 var_dump(in_array("ff",$arr)); //判断数组中有没有“aa”的值 判断数组中有是否存在某个值
5.2 var_dump(array_reverse($arr); //翻转数组
5.3 var_dump(count($arr); //返回数组的长度,个数
5.4 $a= array_unique($arr); //把数组里重复的值去掉,但索引号也没
var_dump($a);
5.5 var_dump(array_values($a)); //重新索引,去重或删除后可重新索引
5.5 unset($arr[0]); //删除数组中的某一个元素
var_dump($arr);
5.6 array_push($arr,"ee"); //添加元素 在数组$arr中添加元素"aa"
var_dump($arr);
5.7 $a=array(a,b);
$b=array(1,2);
$c=array_merge($a,$b); //合并数组
var_dump($c);
6. 二维数组:
6.1 定义:
$attr=array(
array(1,2,3),
array(4,5,6),
array(7,8,9)
);
6.2 例子:
例子一:
$attr=array(
array("n001",汉族),
array("n002",苗族),
array("n003",回族),
array("n004",维吾尔族)
);
1. 将数组中的内容以下拉列表的形式表示:
echo "<select>";
foreach ($attr as $value)
{
echo "<option value='($value[0])'>($value[1])</option>";
}
echo "</select>";

2. 以div形式表示:
foreach($arr as $value)
{
echo "<div class='{$value[0]}'>{$value[1]}</div>";
}

例子二:
将二维数组中的内容显示为表格:
$arr=array(
array("p001","张丽","女","汉族"),
array("p002","赵军","男","汉族"),
array("p003","王文","女","回族"),
array("p004","张越","男","汉族"),
array("p005","李玉","女","苗族"),
);
echo "<table width='60%' height='200' cellpadding='0' cellspacing='0' border='1'>";
echo "<tr><td>代号</td><td>姓名</td><td>性别</td><td>民族</td></tr>";
for($i=0;$i<count($arr);$i++)
{
echo "<tr>
<td>{$arr[$i][0]}</td>
<td>{$arr[$i][1]}</td>
<td>{$arr[$i][2]}</td>
<td>{$arr[$i][3]}</td>
</tr>";
}
echo "</table>";

php基础之三 数组的更多相关文章
- 《利用python进行数据分析》读书笔记--第四章 numpy基础:数组和矢量计算
http://www.cnblogs.com/batteryhp/p/5000104.html 第四章 Numpy基础:数组和矢量计算 第一部分:numpy的ndarray:一种多维数组对象 实话说, ...
- [.net 面向对象编程基础] (17) 数组与集合
[.net 面向对象编程基础] (17) 数组与集合 学习了前面的C#三大特性,及接口,抽象类这些相对抽象的东西以后,是不是有点很累的感觉.具体的东西总是容易理解,因此我们在介绍前面抽象概念的时候,总 ...
- PHP基础 之 数组(一)
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...
- R语言基础:数组&列表&向量&矩阵&因子&数据框
R语言基础:数组和列表 数组(array) 一维数据是向量,二维数据是矩阵,数组是向量和矩阵的直接推广,是由三维或三维以上的数据构成的. 数组函数是array(),语法是:array(dadta, d ...
- Java之--Java语言基础组成—数组
Java语言基础组成-数组 Java语言由8个模块构成,分别为:关键字.标识符(包名.类名.接口名.常量名.变量名等).注释.常量和变量.运算符.语句.函数.数组. 本片主要介绍Java中的数组,数组 ...
- OC基础 可变数组与不可变数组的使用
OC基础 可变数组与不可变数组的使用 1.不可变数组 1.1不可变数组的创建 //实例方法 NSArray *array = [[NSArray alloc] initWithObjects:&quo ...
- 利用Python进行数据分析——Numpy基础:数组和矢量计算
利用Python进行数据分析--Numpy基础:数组和矢量计算 ndarry,一个具有矢量运算和复杂广播能力快速节省空间的多维数组 对整组数据进行快速运算的标准数学函数,无需for-loop 用于读写 ...
- Go语言基础之数组
Go语言基础之数组 本文主要介绍数组(array)及它的基本使用. Array(数组) 数组是同一种数据类型元素的集合. 在Go语言中,数组从声明时就确定,使用时可以修改数组成员,但是数组大小不可变化 ...
- 第二十四节:Java语言基础-讲解数组的综合应用
数组的综合应用 // 打印数组 public static void printArray(int[] arr) { for(int x=0;x<arr.length;x++) { if(x!= ...
随机推荐
- android禁用光感按键
用RE浏览器打开/system/usr/keylayout下的qwerty.kl文件, 找到key 158 BACK key 139 MENU key 102 HOME 分别在其之前加下#号,如下: ...
- GPIO的8种模式详解
和stm32的GPIO相关的寄存器有 (1)两个32位的配置寄存器(GPIOX_CRL,GPIOX_CRH) 每一个IO占用4位,16个IO占用64位就是两个32为寄存器. 其中CNF[1:0]是用来 ...
- 转:单片机C语言中的data,idata,xdata,pdata,code
从数据存储类型来说,8051系列有片内.片外程序存储器,片内.片外数据存储器,片内程序存储器还分直接寻址区和间接寻址类型,分别对应code.data.xdata.idata以及根据51系列特点而设定的 ...
- Visual Studio 2015 Owin+MVC+WebAPI+ODataV4+EntityFrawork+Identity+Oauth2.0+AngularJS 1.x 学习笔记
2016年,.net 会有很多大更新 ASP.NET 5 在此之前我都是用着古老的.net做开发的 (WebForm + IIS) 为了接下来应对 .net 的新功能,我特地去学习了一下基本的 MVC ...
- cf500A New Year Transportation
A. New Year Transportation time limit per test 2 seconds memory limit per test 256 megabytes input s ...
- 金错刀对话口袋购物王珂:找到痛点,确认卖点,制造爆点! - 资讯 - i黑马网
金错刀对话口袋购物王珂:找到痛点,确认卖点,制造爆点! - 资讯 - i黑马网 金错刀对话口袋购物王珂:找到痛点,确认卖点,制造爆点!
- 基于Hadoop集群的HBase集群的配置
一 Hadoop集群部署 hadoop配置 二 Zookeeper集群部署 zookeeper配置 三 Hbase集群部署 1.配置hbase-env.sh HBASE_MANAGES_ZK:用来 ...
- C# 文件上传
一.分析 本次博客,主要解决文件上传等一系列问题,将从两方面来论述,即1G以内文件和1G以上文件. 对于上传1G以内的文件,可以采用基本的三种上传方法:用Web控件FileUpload.html控件 ...
- 修改文件所有者 chown
将upload目录权限改为777,sudo chmod 777 upload,再测试上传功能成功.但这种修改权限的方法并不安全.故可以改upload目录的拥有者为www-data(即apache) ...
- jQuery -> 获取兄弟元�
获取指定元素的兄弟元素时,能够使用adjacent sibling combinator (+),当中+的两側内容都是selector expression. 假设要获取下例中全部的 h1的直接兄弟元 ...