<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. 在 WF 4 中编写自定义控制流活动

    在 WF 4 中编写自定义控制流活动 Leon Welicki 控制流是指组织和执行程序中各个指令的方法. 在 Windows Workflow Foundation 4 (WF 4) 中,控制流活动 ...

  2. [ES6] 04. The let keyword -- 2 Fiald case

    Fiald case 1: let can work in it's block { let a = 10; var b = 1; } a // ReferenceError: a is not de ...

  3. [小技巧] gcc attribute error 属性小试

    gcc __attribute__  里有一个属性是 error 能够用于编译时报错. 參考: https://gcc.gnu.org/onlinedocs/gcc-4.3.0/gcc/Functio ...

  4. 《javascript高级程序设计》读书笔记(一)javascript简单介绍

    第一章:javascript简单介绍 Netscape Navigator 开发的javascript   Javascript的实现有三部分: 1.核心(ECMAScript):提供核心语言功能. ...

  5. centos下docker网络桥接

    停止服务 停止docker0网卡 Ip link set dev docker0 down 删除docker0 Brctl delbr docker0 进入到网卡的配置文件创建桥接网络br0 Brct ...

  6. Intent的用法总结(不进你会后悔的)

    下面列出几种Intent的用法 下面的代码片段通过谷歌搜索 Intent intent = new Intent(); intent.setAction(Intent.ACTION_WEB_SEARC ...

  7. .NET破解之爱奇迪(三)

    本教程只能用于学习研究,不可进行任何商业用途.如有使用,请购买正版,尊重他人劳动成果和知识产权! .NET破解之爱奇迪(一) .NET破解之爱奇迪(二) 一打开软件,就看到各种注册和未注册提示信息,就 ...

  8. C++ 11 - STL - 函数对象(Function Object) (上)

    1. 定义 在STL中,可以把函数传递给算法,也可以把函数对象传递给算法. 那么,什么是函数对象呢? 我们来看下它的声明: class X { public: // define function c ...

  9. send返回值

    http://blog.csdn.net/anghlq/article/details/5990513 在Unix系统下,如果send . recv . write在等待协议传送数据时 , socke ...

  10. Hadoop源码分析(MapTask辅助类,II)

    有了上面Mapper输出的内存存储结构和硬盘存储结构讨论,我们来细致分析MapOutputBuffer的流程.首先是成员变量.最先初始化的是作业配置job和统计功能reporter.通过配置,MapO ...