<body>
<?php
$arr[0]=5;//赋值定义
$arr[1]="aa"; print_r($arr);
echo "<br />";
$array=array(1,2,3,4,5,6);//定义索引数组
print_r($array);
echo "<br />";
$array1=array("aa"=>5,"bb"=>6,"cc"=>7);//关联数组,用key来取值
print_r($array1["aa"]);
echo "<br />"; //遍历数组
//一、for循环 for($i=0;$i<count($array);$i++) //只适用于索引数组
{
echo $array[$i]."<br />";
} //二、foreach循环 只取值
foreach($array as $value)
{
echo $value."<br />";
}
//取key和value
foreach($array as $key=>$value)
{
echo $key."->".$value."<br />"; }
//更为简便
foreach($array as $key=>$value)
{
echo "{$key}=>{$value}<br />";//{}
}
//each()函数 取数组当前指针指向的元素信息,返回一个含键值对的数组,每执行一次,往下走一次
$array2=array("aa"=>1,2,3,"d"=>4,5,6);
each($array2);
each($array2);
print_r(each($array2));
echo "<br />"; //list() 特殊函数 唯一一个"="放在右边的函数,右边只能写一个数组 只针对于索引数组
//将右边数组的每个元素映射到左边的变量
$array3=array(1,2,3,4,5,6); list($a,$b,$c,,$e,$f)=$array3;
echo $b;
echo "<br />";
//三、each(),list(),while循环遍历 while(list($key,$value)=each($array3))
{
echo "{$key}->{$value}<br />"; }
//指针 each()函数会改变指针位置 //current()会改变当前指针位置 $array4=array(1,2,3,4,5,6);
echo current($array4);//
echo "<br />";
print_r(each($array4));//each()改变指针位置
echo "<br />";
echo current($array4);//指针变为2
echo "<br />";
//key() 返回当前指针位置的索引
echo key($array4);//
echo "<br />";
//prev() 将指针倒回一位
echo current($array4);//
echo "<br />";
echo prev($array4);//
echo "<br />";//2
//next(); 将指针向前移动一位
echo next($array4);
echo "<br />";
//end()将指针放到结尾
echo end($array4);//
echo "<br />";
//reset()重置,将指针放到最前
echo reset($array4);
echo "<br />";//1
//四、指针遍历
while(next($array4))
{ }
?>
<br />
<?php
//预定义数组
//全局变量
$a=5;
$b=6; function test()
{
global $a;
global $b;
return $a*$b;
}
echo test();
echo "<br />";
//预定义数组的全局变量
//$GLOBALS[]
$c=5;
$d=6;
function test1()
{
return $GLOBALS['c']*$GLOBALS['d'];
}
echo test1();
//$_SERVER 服务器和执行环境信息
//提交传值
//get 显示传输的数据 有长度限制
//推荐用post //保存登陆状态
?>
<form name="" method="post" action="CHULI.php">
<input type="text" name="uid"><br />
<input type="text" name="pwd"><br />
<input type="submit" name="button" value="登陆">
</form>
</body>

输出结果:

笔记:‘

数组:
一:定义

1.赋值定义
$arr[0] = 5;
$arr[1] = "aa";

2.定义索引数组
$arr = array(1,2,3,4,5);

3.定义关联数组,只能用key来取值
$arr = array("aa"=>5,"bb"=>6,7=>"cc");

二:取值

1.索引数组取值:
$arr[0];用索引号来取值

2.关联数组取值:
$arr["aa"];用key取值

三:遍历数组

1.for循环
for($i=0;$i<count($arr);$i++)
{
echo $arr[$i]."<br>";
}
优点:通用,简单。缺点:只能遍历索引数组

2.foreach遍历
foreach($arr as $value)
{
echo $value."<br>";
}

//或

foreach($arr as $key=>$value)
{
echo "{$key}->{$value}<br>";
}

3.each()函数
each($arr);取数组里面当前指针指向的元素的信息,返回一个包含键值对的数组,每执行一次,指针向下走一次,指向下一个元素。
4.list()函数
list($a,$b,$c,$d,$e,$f) = $arr;将索引数组的每个元素映射到list变量列表里面

5.while遍历

在while()语句每次循环中,each()语句将当前数组元素的键,赋给list()函数的第一个参数变量$key。并将当前数组元素中的值,赋给list()函数中的第二个参数变量$value,并且each()语句执行之后还会把数组内部的指针向后移动一步,因此下次while()语句循环时,将会得到该数组中下一个元素的键/值对。直到数组的结尾each()语句返回FALSE,while()语句停止循环,结束数组的遍历。
while(list($key,$value) = each($arr))
{
echo "{$key}->{$value}<br>";
}

6.指针:
current($arr)返回当前位置中的内容
key($arr)返回当前位置的索引
prev($arr);将指针倒回一位
next($arr);将指针向前移动一位
end($arr);将指针指向最后一个单元
reset($arr);将指针指向第一个单元

四:预定义数组
global $b;声明全局变量

五:其它
querystring:提交传值字符串

PHP——数组和数据结构的更多相关文章

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

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

  2. PHP08 数组和数据结构

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

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

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

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

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

  5. php的数组与数据结构

    一.数组的分类与定义 分类: 1.索引数组  $array = array(1,2,3,4,5); 2.关联数组  $array=array(1=>"aa","bb ...

  6. PHP数组和数据结构(下)未完。。。。

    1.数组的遍历 (1)each(): 接受一个数组作为参数,返回数组中当前元素的键/值对,并向后移动数组指针到下一个元素的位置 键/值对被返回为带有四个元素的关联和索引混合的数组,键名分别为0,1,k ...

  7. PHP数组和数据结构(上)

    1.数组的声明 两种方法: 直接给数组元素赋值 使用array()函数声明 说明: (1)索引数组的下标可以是非连续的值,只要在初始化时指定非连续的下标值即可 如果指定的下标值已经声明过,则属于对变量 ...

  8. 算法求解中的变量、数组与数据结构(STL 中的容器)

    本质上算法都是对数据的操作,没有数据,没有存储数据的容器和组织方式,算法就是无源之水无本之木,就是巧妇也难为无米之炊.算法是演员,变量.数组.容器等就是舞台, 然后整个算法的处理流程,都是针对这些数据 ...

  9. 递归遍历多维数组(树数据结构)的超级简单方式,并且可以递归超过200层,摘自<<PHP精粹:编写高效PHP代码>>

    <?php $array = array( "Hello", // Level 1 array( "World" // Level 2 ), array( ...

随机推荐

  1. es5 - array - reverse

    /** * 描述:也就是数组元素反转 * 使用:arr.reverse() */ var a = [1,2,3]; console.log(a.reverse()); /** * 一个经典的问题:如何 ...

  2. AA MME设备内部错误

    adobe audition 找不到所支持的音频设备 这是3.0的错误!     上面是cs6的错误的图   主要原因是以前安装过,没有注册表没有清理干净     解决方案: https://jing ...

  3. Set 和 WeakSet 数据结构

    Set 和 WeakSet 数据结构是ES6新增. 它与数组非常相似,但是Set数据结构的成员都是唯一的. 特别说明:Set 中只能添加一个NaN 一.Set 数据结构: var set = new ...

  4. 升级Eclipse出错的解决办法“Updating Software” has encountered a problem: An error occurred while uninstalling

    运行 eclipse 把 eclipse exe 修改为 eclipse.exe.back 再运行 updates 升级成功

  5. ajax 缓存问题及解决方案

      ajax 缓存问题及解决方案 CreationTime--2018年7月25日16点04分 Author:Marydon 1.什么情况下ajax请求会出现缓存? 当请求的路径.参数名.参数值三者都 ...

  6. linux内核学习推荐书籍

    <UNIX环境高级编程>,推荐指数:★★★★★ <UNIX环境高级编程>是 Unix/ Linux 程序员案头必备的一本书籍.可以说,Linux 程序员如果没有读过这本书,就好 ...

  7. 转:sock_ev——linux平台socket事件框架(event dispatcher) .

    最近比较忙,好久没更新了:今天我们看一下事件的监听方式,在linux下面事件的监听方式有三种select.poll.epoll,性能上面epoll最高,如果仅是最多监听十多个描述符,用啥无所谓,如果是 ...

  8. 【APP接口开发】chrome浏览器DHC工具安装使用(亲测有效)

    1.DHC文件获取地址:http://chromecj.com/web-development/2015-08/549/download.html 2.chrome安装DHC插件教程和步骤:http: ...

  9. Git-学习笔记(常用命令集合)

    这里引用一下百度百科里Git的内容: Git --- The stupid content tracker, 傻瓜内容跟踪器.Linus Torvalds 是这样给我们介绍 Git 的. Git 是用 ...

  10. ref与out区别(ref有进有出,而out只出不进)

    ref与out区别(ref有进有出,而out只出不进)   C#基础:ref和out的区别 ref和out的区别在C# 中,既可以通过值也可以通过引用传递参数.通过引用传递参数允许函数成员更改参数的值 ...