PHP数组

PHP数组

PHP数组介绍

    数组和变量都是保存数据的,不同的是数组只有一个名称,但是却可以保存多个数据。数组中存放的每个数据叫做“元素”,每个元素有各自的值,数组通过索引来找到元素值。当数组元素个数为n时,表示数组的长度为n。除了一维数组外,PHP也支持多维数组。数组可以作为返回值用于函数,也可以作为参数传入函数。php数组属于关联数组,数组的大小无须事先声明,每个元素的类型不一定相同,同时可以通过整数或字符串索引进行访问,因此php的编译程序不会事先分配内存空间给数组,而是在用户新增元素时,再分配内存空间给该元素。

除[]外,也可以使用{}访问数组元素
当使用布尔数据作为数组的索引时,TRUE会转化为1,而FALSE会转化为0
当使用NULL作为数组的索引时,NULL会转化为空字符串””
当将NULL转化为数组时,会得到一个空数组
当将integer,float,boolean,string,resource等数据类型转化为数组时,会得到一个包含一个元素的数组,元素的索引为0,值为该数据

一维数组

直接赋索引与值创建数组

    创建一维数组最简单的方式是直接赋值它的索引与值,索引必须为整数或字符串,值则无限制。

$my_array[key1]=value1;
$my_array[key2]=value2;

使用array()函数创建数组

//创建一个空数组
$my_array = array();
//创建一个包含三个元素的一维数组,没有赋值索引,默认0,1,2
$my_array2 = array(“a”,”b”,”c”);
//自行赋值索引
$my_array3 = array(“a”=>”as”,”b”=>”bs”,”c”=>”cs“);

:若有赋值的元素的值却没有索引时,例如my_array[] = 100,默认的索引为数组中最大的索引加1,如果数组中没有正整数索引(负数或字符串),默认的索引为0.

访问一维数组

  • 通过索引指定要访问的元素
var $my_array = new Array("as","bs");
$my_array[0]="as";
  • 通过list()函数
var $my_array = new Array("as","bs");
List($i1,$i2)= $my_array;
//$i1为"as",$i2为"bs

多维数组:

创建多维数组:

  • 创建多维数组最简单的方式是直接赋值它的索引与值,索引必须为整数或字符串,值则无限制

  • 使用array()函数:在array()里面嵌套array()函数来创建多维数组

$my_array = array
  (
  array("lili",22,18),
  array("Wang",2,13),
  array("Saab",52,22),
  array("Lan",21,135)
  );

访问多维数组

通过索引指定要访问的元素

echo $my_array[1][1];

数组运算符

  1. +:返回两个数组的合集
  2. ==:如果两个函数有相同的元素,则返回true
  3. ===:如果两个函数有相同的元素且顺序相同,则返回true
  4. !=:如果两个数字不相等(相等指的是相同的索引和相同的值),则返回true
  5. <>:如果两个数字不相等(相等指的是相同的索引和相同的值),则返回true
  6. !==:如果两个数字不相等(相等指的是相同的索引和相同的值),则返回true

数组相关函数

  1. is_array(arg):如果arg为array,则返回true
  2. count(arg),sizeof(arg):回arg中包含几个元素
  3. in_array(value,arr):如果value存在arr中,则返回true
  4. unset(value):清除array中的value
  5. current(arr),pos(arr):返回数组内部指针目前指向的元素
  6. next(arr):将函数内部指针指向下一个元素并返回该元素
  7. prev(arr):将函数内部指针指向上一个元素并返回该元素
  8. end(arr):将函数内部指针指向最后一个元素并返回该元素
  9. reset(arr):将函数内部指针指向第一个元素并返回该元素
  10. array_walk(arrfunc [,arg …]):对数组中的每个成员应用用户函数
  11. array_sum(arr):返回数组arr中各个元素总和
  12. asort(arr):对数组中元素按值排序
  13. arsort(arr):将数组中值进行反向排序
  14. ksort(arr):将数组中元素按照索引排序

PHP超全局数组

以下8个变量,都是数组变量,又称为”预定义变量”。它们的名称是固定的,必须全大写,下划线开头。

  1. $_GET :通过地址栏传递到服务器的数据,必须是GET方式传递
  2. $_POST:通过表单 method = post 发送的数据,必须是POST方式传递
  3. $_REQUEST:包含GET方式 和POST方式的全部数据
  4. $_SERVER:显示或获取服务器相关的信息
  5. $GLOBALS:全局中的全局,换话句:包含大部分的超全局数组信息
  6. $_SESSION:处理服务器的端的会话数据
  7. $_COOKIE:处理客户端的会话数据
  8. $_FILES:上传文件需要用到的数组

$_POST的使用

作用:用来存储客户端发送过来的POST的数据

客户端:

<form method="post" action="respose.php">
用户名:<input type="text" name="username">
密码:<input type="password" name="password">
<input type="submint" value="登录">
<input type="reset" value="重置">
</form>

respose.php:

<?php
    $username = $_POST['username'];
    $password= $_POST['password'];
    echo "$username,$password";
?>

$_GET的使用

(1)通过<a>向地址栏传数据

<a href="?username=admin&password=admin">提交</a>

(2)通过Js向地址栏传数据

<input type="button" vlaue="单击" onclick="location.href='?username=admin&password=admin'">

服务器端:

<?php
    $username = $_GET['username'];
    $password= $_GET['password'];
    echo "$username,$password";
?>

$_REQUEST的使用

$_REQUEST可以同时获取GET和POST方式传递的数据。$_REQUEST速度比较慢,没有$_GET或$_POST速度快,平常不推荐使用。

客户端:

<form method="post" action="respose.php?ac=login">
用户名:<input type="text" name="username">
密码:<input type="password" name="password">
<input type="submint" value="登录">
<input type="reset" value="重置">
</form>

服务器端:

<?php
    $ac = $_REQUEST['ac'];
    $username = $_REQUEST['username'];
    $password= $_REQUEST['password'];
    echo "$ac,$username,$password";
?>

$_SERVER的使用

获取服务器端的相关信息。$_SERVER数组保存了每一次HTTP请求相关的信息。

echo "服务器IP地址:".$_SERVER['SERVER_ADDR']";
echo "服务器域名:".$_SERVER['SERVER_NAME']";
echo "文件根目录:".$_SERVER['DOCUMENT_ROOT']";
echo "远程IP地址:".$_SERVER['REMOTE_ADDR']";
echo "脚本绝对路径:".$_SERVER['SCRIPT_FILENAME']";
echo "查询字符串:".$_SERVER['QUERY_STRING']";
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值