正则表达式

1.替换

$s = "hello5world";
$s = preg_replace("/\d/","#",$s);
echo $s;
//输出结果为hello#world,数字被替换成了#。
//第一个数字是被替换的内容,"/\d/"表示正则表达式的数字。
//第二个参数是要用什么来替换。
//第三个参数是要操作的数组。

2.拆分

$s = "hello5world";
$attr = preg_split("/\d/",$s); //按照正则表达式拆分
var_dump($arr);
//第一个参数是按照什么拆分,第二个参数是拆分哪个字符串。

3.匹配

$s = "he8llo5wor6ld";
$arr = array();
preg_match("/\d/",$s,$arr); //匹配满足正则的第一个字符串,在这匹配出的是8(8)是字符串中的第一个数字。
preg_match_all("/\d/",$s,$arr); //匹配所有满足正则的字符串,匹配出的是所有的数字(8、5、6)。
//第一个参数是按照什么匹配
//第二个参数是匹配的数组
//第三个参数是另一个数组,也可以是空的数组,匹配完以后的数组放在此数组中。

数组

1.数组定义

$attr = array();//定义一个空的数组
$attr = array(1,2,3,4);//定义一个有值的数组

2.赋值定义

$attr[0]="aa";
$attr[1]="bb";
echo $attr[1];

3.数组分类

(1)索引数组

$attr = array(1,2,3,4,5);
print_r($attr);

(2)关联数组

$attr = array("code"=>101,"name"=>"张三","sex"=>"男");//code=>101表示赋值.code可以称为key,101称为name。
print_r($attr);
echo $attr["name"];

4.遍历数组

(1)for循环遍历,只能遍历索引数组

$attr = array("aa","bb","cc","dd");

/*for($i = 0;$i<count($attr);$i++)
{
  echo $attr[$i]."<br>";
}

(2)foreach遍历,关联和索引都可以遍历.

$attr = array("aa","bb","cc","dd");
foreach($attr as $v)
{
  echo $v."<br>";
}
//只能遍历出值 foreach($attr as $k=>$v)
{
  echo $k."--".$v."<br>";
}
//可以遍历出key和value $attr = array(1,2,3,4,5);
foreach($attr as $k=>$v)
{
  if($v == 3)
  {
    unset($attr[$k]);
//删除一个元素或者删除一个变量,不能直接unset($v),因为遍历时是把数组里面的数字3复制给$v的,删除的是复制的,而不是数组里面的。
  }
}
$attr = array_values($attr);//重新索引,删除数组元素里面的3以后,索引值变为0,1,3,4.重新索引后变为0,1,2,3。
var_dump($attr);
//在其它语言中,使用foreach遍历数组里面的元素时,不能在foreach里面删除或者添加元素。只有php里面可以。

(3)使用each()和list()结合遍历

var_dump(each($attr));//取数组里面当前指针指向的元素.

list($a,$b,$c,$d)=$attr;//写在等号左边的将数组里面的元素交给一组变量,数组必须是索引数组。
echo $c; list($k,$v) = each($attr);
echo $k;
echo $v; while(list($k,$v) = each($attr));
{
echo "{$k}--{$v}<br>";
}

(4)使用指针遍历

var_dump(current($attr));//取当前指针指向的元素的值
key($attr);//取当前指针指向的元素的key
next($attr);//将指针向后调一个
prev($attr);//将指针向前调一个
end($attr);//将指针向指向最后
reset($attr);//将指针重置 var_dump(next($attr));
var_dump(next($attr));
var_dump(next($attr));
var_dump(next($attr)); while(next($attr))
{
echo current($attr);
echo key($attr);
} do
{
echo current($attr);
echo key($attr);
}
while(next($attr))

预定义数组

1.$GLOBALS引用全局作用域中的全局变量

var_dump$GLOBALS()//$GLOBALS是一个数组,是系统自定义的,无法修改的,必须大写。代表全局变量的数组。

2.$_SERVER是服务器的信息

3.$_ENV代表环境变量

4.$_GET代表的是用户用_GET方式传递的数据

<body>
<form action="test.php" method="get">
<input type="text" name="uid" />
<input type="text" name="pwd" />
<input type="submit" value="提交" />
</form>
</body>
//输入数据提交以后会显示提交的数据。var_dump($_get)可以获取提交的数据。

5.$_POST代表的是用户用post方式传递的数据

method的方式和获取的方式要对应。var_dump($_POST)

6.$_REQUEST也可以获取用户传递的数据。

$_REQUEST可以取GET方式传递的数据,也可以取POST方式传递的数据。但是一般不要用$_REQUEST,相对的不安全。

7.$_FILES;是关于表单提交文件的。

<form action="text.php" method="post" enctype="multipart/form-date">//提交文件时需要写上enctype属性,提交方式要用post

8.$_SESSION

  会话控制,保存用户登录信息的机制。如果登录上一个页面以后一定的时间没有操作,刷新页面后会要求重新登录,这就是_SESSION的效果。它有一个固定的时间,过后登录信息会清除。_SESSION存储登录信息存储在服务器上。_SESSION的安全性会更好。

9.$_COOKIE

  会话控制,保存用户登录信息的机制。如果登录上一个页面以后一定的时间没有操作,刷新页面后不需要重新登录,这就是_COOKIE的效果。_COOKIE存储登录信息存储在硬盘上。_COOKIE的安全性不如_SESSION。

其它常用函数

1.in_array( , );判断某一个值是不是在这个数组里面存在,括号里面有两个参数,第一个参数是是否存在的值,第二个参数是检查的数组。

2.array_reverse();翻转函数,括号里面写要翻转的数组。

3.array_unique();删除重复值,去重。

4.unset($attr[0]);删除数组里的某个值。

5.array_values();重新索引。一般和删除一起使用。

6.array_merge();合并数组,括号里面填写n个要合并的数组。

7.array_push();往数组里面添加一个值,添加位置在末尾。

数组例子

//取数组里面的内容做下拉列表
方法1:
$attr = array(//定义一个数组,用二维数组。
array("n001","汉族"),
array("n002","回族"),
array("n003","满族"),
array("n004","维吾尔族")
);
<select>
<option>所有</option>
<?php foreach($attr as $v)
{
  echo "<option>{$v[1]}</option>";
}
?>
</select>

方法2:

$attr = array(//定义一个数组,用二维数组。
array("n001","汉族"),
array("n002","回族"),
array("n003","满族"),
array("n004","维吾尔族")
);
echo "<select>";
echo "<option>所有的</option>"; foreach($attr as $v)
{
  echo "<option>{$v[1]}</option>";
} echo "</select>";

例子2:二维数组遍历到表格

$attr = array(
array("code","name","民族","年龄"),
array("001","张三","汉族","23"),
array("002","李四","回族","34"),
array("003","王五","维吾尔族","53"),
array("004","宋六","壮族","26")
);
echo "<table border='1px'>";
for($i=0;$i<count($attr);$i++)
{
echo "<tr>";
for($j=0;$j<count($attr[$i]);$j++)
{
echo "<td>".$attr[$i][$j]."</td>";
}
echo "</tr>";
}
echo "</table>";

 

10月23日上午PHP数组的更多相关文章

  1. [分享] 从定制Win7母盘到封装详细教程 By BILL ( 10月23日补充说明 )

    [分享] 从定制Win7母盘到封装详细教程 By BILL ( 10月23日补充说明 ) billcheung 发表于 2011-10-23 00:07:49 https://www.itsk.com ...

  2. 2016年10月23日 星期日 --出埃及记 Exodus 19:7

    2016年10月23日 星期日 --出埃及记 Exodus 19:7 So Moses went back and summoned the elders of the people and set ...

  3. Linux自用指令——2019年10月23日

    1.ls ls命令是列出目录内容(List Directory Contents)的意思.运行它就是列出文件夹里的内容,可能是文件也可能是文件夹. ls -a 列出目录所有文件,包含以.开始的隐藏文件 ...

  4. 9月19日上午JavaScript数组

    数组 一.定义 1.数组的文字定义 广义上说,数组是相同类型数据的集合.但是对于强类型语言和弱类型语言来说其特点是不一样的.强类型语言数组和集合有以下特点. 数组强类型语言:1.数组里面只能存放相同数 ...

  5. 10月30日上午MySQL数据库的修改(从网页上实现对数据库的更改)

    从网页页面上对数据库进行更改,连接着之前做的增加.删除.查询. 1.先做一个修改页面 <body> <!--这个页面需要让用户看到一些数据,所以不是一个纯php页面,页面效果和增加页 ...

  6. 10月28日上午 PHP数据访问

    1.建一个连接(连接PHP和MYSQL) $db = new MySQLi("localhost","root","666","t ...

  7. 2015年10月23日JS笔记

    ECMAScript标准:JavaScript核心语法 微软:Jscript ECMAScript标准:一纸空文 JavaScript和JScritp都号称完全实现了 ECMAScript标准 W3C ...

  8. 10月25日上午PHP继承多态

    概念:子类可以继承父类的一切 方法重写:在子类里面对父类的方法进行重写,实现自己独特的功能.特点:单继承:一个子类只能有一个父类,一个父类可以派生出多个子类.override重写(子类对父类的重写) ...

  9. 10月24日上午PHP面向对象

    面向对象 程序分为两种,一种是面向过程的,另一种是面向对象的.之前的学的都是面向过程的,按部就班的一步一步的按照顺序往下走. 面向对象: 1.什么叫做对象 一切皆为对象(一个对象由一组属性和有权对这些 ...

随机推荐

  1. C# EventHandler and Delegate(委托的使用)

    委托的声明 public delegate void MyDelegate(string str); 注 1.委托的定义和方法的定义类似,只是在前面加了一个delegate,但委托不是方法,它是一种特 ...

  2. 现代软件工程 第七章 【MSF】练习与讨论

    7.7  移山开发方法——比TFS敏捷更精简 几个软件学院的学生来请教阿超,同学们自豪地说,我们要用全套TFS敏捷开发模式开发项目! 真的?阿超不敢相信. 同学: 对!我们要用全5个工作项类型 – 任 ...

  3. 网页之间信息传递方式(Cookie,Session)

    1.使用header()函数的重定向方式实现网页跳转.   EXE:header("Location: http://www.example.com/");   2.URL的GET ...

  4. import random 模块导入

    import random print(random.random()) #浮点数值 print(random.randint(1,2))#循环显示1,2 print(random.randrange ...

  5. 89c51中断入口地址表

    中断源   中断入口地址 外部中断0 0003H 定时器/计数器T0 000BH 外部中断1 0013H 定时器/计数器T1 001BH 串行口中断   0023H

  6. MySQL server PID file could not be found!

    重启mysql提示MySQL server PID file could not be found! Starting MySQL...The server quit without updating ...

  7. 编写实现连接oracle数据库并返回Connection对象的Java工具类

    只需要实现一个功能,所以只写一个方法,为了方便调用,设为静态方法 package com.jv; import java.sql.Connection; import java.sql.DriverM ...

  8. 【HDU 4305】Lightning(生成树计数)

    Problem Description There are N robots standing on the ground (Don't know why. Don't know how). Sudd ...

  9. 63.Android面试题精选 (转)

    1.Android dvm 的进程和Linux的进程,应用程序的进程是否为同一个概念: 答:dvm是dalivk虚拟机.每一个android应用程序都在自己的进程中运行,都拥有一个dalivk虚拟机实 ...

  10. BZOJ 3709: [PA2014]Bohater

    3709: [PA2014]Bohater Time Limit: 5 Sec  Memory Limit: 128 MBSec  Special JudgeSubmit: 1050  Solved: ...