PHP第六课 数组的用法

学习概要:

*了解基本的数组函数的使用

*懂得数组的遍历

*了解超全局数组的基本关系与使用

数组

1.数组定义和遍历

2.数组函数

数组定义:

$arr=array(1,2,3);//索引数组,下标全是数字

$arr=array("name"=>"user1","age"=>"30");//关联数组,下标中包含字母

//下标只有两种,要么是字母,要是是不带双引号的数字

<?php

			$arr=array("name"=>1,3,"age"=>4,5,100=>6,7,400=>8,9);
			echo "<pre>";
			print_r ($arr);
			echo "</pre>";

			?>

数组下标:

如果是字母

$arr=array("name"=>1,3,"age"=>4,5,100=>6,7,400=>8,9);

//下标打印:"name"   0

[name] => 1

[0] => 3

[age] => 4

[1] => 5

[100] => 6

[101] => 7

[400] => 8

[401] => 9

数组取值:

1.输出整个数组

print_r($arr)

2.输出数组中的某个值

$arr=array("name"=>1,3,"age"=>4,5,"100"=>6,7,"400"=>8,9);

				echo $arr['age'];
				echo "<br>";
				echo $arr[100];

3.数组赋值:

1.$arr[‘age‘]=30;

数组赋值也可以定义数组:

$arr[]=1;

$arr[]=2;

4.数组遍历:

1.for循环

<?php

				$arr[]=1;
				$arr[]=2;
				$arr[]=3;
				$arr[]=4;
				$arr[]=5;
				$arr[]=6;

			 	for($i=0;$i<5;$i++){

			 		echo "<h1>第".($i+1)."个人的名字是{$arr[$i]}</h1>";

			 	}
				?>

循环加判断:

	<?php

			$arr[]=1;
			$arr[]=2;
			$arr[]=3;
			$arr[]=4;
			$arr[]=5;
			$arr[]=6;

		 	for($i=0;$i<5;$i++){

		 		if($i%2==0){
		 				echo "<h1>第".($i+1)."个人的名字是{$arr[$i]}</h1>";
		 		}else{
		 			echo "<h1 style='color:blue'>第".($i+1)."个人的名字是{$arr[$i]}</h1>";
		 		}

		 	}
			?>

2.foreach循环

foreach 进行数组遍历:

<?php

			//键值对 name="user1" 就是数组下标和值,key和value

			$arr['name']="junzai";
			$arr['age']=20;
			$arr['sex']="man";
			$arr[]="abc";

			echo "<pre>";
			print_r ($arr);
			echo "</pre>";

			foreach($arr as $key=>$val){
				$num++;
				if($num%2==1){
				echo "<h1>{$key}:{$val}</h1>";

				}else{
				echo "<h1 style='color:red'>{$key}:{$val}</h1>";
				}
			}
			?>

3.while....list ..each 循环遍历

while(list($key,$val)=each($arr)){

echo $key.$val;

}

//推荐使用foreach遍历数组

多维数组:

1.一维数组 $arr=array(1,2,3);

$arr[0];

2.二维数组 $arr=array(1,2,array(4,5));

$arr[2][0];

2.二维数组 $arr=array(1,2,array(3,array(4,5)));

$arr[2][1][0];

二维数组遍历:

<?php

			    header("content-type:text/html;charset=utf-8");

			    $arr=array("a","b",array("c","d"),array("e"));

			    echo "<pre>";

				print_r($arr);	

				echo "</pre>";

				echo "<hr>";

				foreach($arr as $val){

					if(is_array($val)){
						foreach($val as $val2){
							echo $val2."<br>";
						}
					} else{
						echo $val."<br>";
					}
				}

				?>

三维数组取值:

<?php

			    header("content-type:text/html;charset=utf-8");

			    $arr=array("a","b",array("c","d"),array("e",array("f","z")));

			    echo "<pre>";

				print_r($arr);	

				echo "</pre>";

				echo "<hr>";

				foreach($arr as $val){

				if(is_array($val)){
					foreach($val as $val2){
						if(is_array($val2)){
							foreach($val2 as $val3){
								echo $val3."<br>";

							}
						}else {
							echo $val2."<br>";
						}
					}
				} else{
					echo $val."<br>";
				}

				}
				?>

//推荐使用一维数组和二维数组

一张数据表其实就是一个二维数组,里面的每一行记录就是一个一维数组

查询数据库:

<?php

			    header("content-type:text/html;charset=utf-8");
			    mysql_connect("localhost","root","1234");
			    mysql_select_db("test");
			    mysql_query("set names utf8");
			    $sql = "select * from user";

			    $result = mysql_query($sql);
			    $row1 = mysql_fetch_assoc($result);

			    echo "<pre>";
			    print_r($row1);
			    echo "</pre>";

				?>

超全局数组:

超全局数组

$_SERVER

$_GET

$_POST

$_REQUEST

$_FILES

$_COOKIES

$_SESSION

$GLOBALS

$_SERVER 查看服务器信息

<?php

				    header("content-type:text/html;charset=utf-8");

				    echo "<pre>";
				    print_r($_SERVER);
				    echo "</pre>";

					?>

Apache/2.2.8 (Win32) PHP/5.2.6 Server at localhost Port 80

[SERVER_SOFTWARE] => Apache/2.2.8 (Win32) PHP/5.2.6

[SERVER_NAME] => localhost//服务器域名

[SERVER_ADDR] => 127.0.0.1//服务器ip

[SERVER_PORT] => 80//端口号

[REMOTE_ADDR] => 127.0.0.1  //客户端访问ip

[DOCUMENT_ROOT] => E:/AppServ/www

[SERVER_ADMIN] => [email protected]

[SCRIPT_FILENAME] => E:/AppServ/www/index.php  //脚本文件名字的绝对路径

[REMOTE_PORT] => 49881

[GATEWAY_INTERFACE] => CGI/1.1

[SERVER_PROTOCOL] => HTTP/1.1

[REQUEST_METHOD] => GET

[QUERY_STRING] =>                   //请求字符串

[REQUEST_URI] => ///请求url地址

[SCRIPT_NAME] => /index.php//脚本名称(相对网站根目录)

[PHP_SELF] => /index.php

[REQUEST_TIME] => 1407568551//访问时间

[argv] => Array

(

)

[argc] => 0

)

$_GET 获取用get提交过来的数据

http://localhost/index.php?id=10&name=user1

两个页面之间通讯:

1.表单传值

第一种:get方式

第二种:post方式

2.a标签传值

只能用get方式

a标签推荐使用get方式提交数据

表单推荐使用post方式提交数据

magic_quotes_gpc = on;表示开启了get请求的时候,会讲get数据中的‘前面加\

get实例:

index.php

<html>
				<head>
				<title>
				接收信息
				</title>
				</head>
				<body>
				<a href="rev.php?name=junjun2&age=26" target="'_blank">junjun2</a><br>
				<a href="rev.php?name=junjun3&age=23" target="'_blank">junzai3</a><br>
				<a href="rev.php?name=junjun4&age=25" target="'_blank">junjun4</a><br>
				<a href="rev.php?name=junjun5&age=27" target="'_blank">junjun5</a><br>
				</body>

			</html>

rev.php

<html>
					<head>
					<title>
					接收信息
					</title>
					</head>
					<body>
					<h1>欢迎:
					<?php echo $_GET['name'];?>
					</h1>
					<hr>
					<h1>姓名:<?php echo $_GET['name']?></h1>
					<h1>年龄:<?php echo $_GET['age']?></h1>
					</body>

					</html>

post实例

$_POST:获取表单post过来的数据

index.php

<html>
				<head>
				<title>
				接收信息
				</title>
				</head>
				<body>
				<h1>提交用户信息</h1>
				 <form action = "rev.php" method="POST">
					姓名:<input type="text" name="name" id=""><br>
					年龄:<input type="text" name="age" id=""><br>
					<input type="submit" value="提交" target="_blank"	>
				</form>
				</body>

			</html>

rev.php

<html>
					<head>
					<header content-type="text/html";charset="gbk">
					<title>
					接收信息
					</title>
					</head>
					<body>
					<h1>欢迎:
					<?php echo $_POST['name'];?>
					</h1>
					<hr>
					<h1>姓名:<?php echo $_POST['name']?></h1>
					<h1>年龄:<?php echo $_POST['age']?></h1>
					</body>

				</html>

$_REQUEST

获取a或者表单get或post过来的数据.

$_COOKIES

同一个页面在多个页面获取

$_SESSION

同一个变量在多个页面获取到

$_FILES

获取表单中的文件,并生成一个数组.

$GLOBALS

$GLOBALS[_SERVER]

$GLOBALS[_GET]

$GLOBALS[_POST]

$GLOBALS[_FILES]

$GLOBALS[_REQUEST]

$GLOBALS[_COOKIES]

$GLOBALS[username]//里面包含页面内的全局变量,并且通过$GLOBALS[username]="user2"改变$username的值.

实例:使用$GLOBALS改变全局变量的值.

<?php
					$username111="user1";

					function show(){
					$GLOBALS[username111]="USER2";
					}

					show();

					echo $username111;

					echo "<pre>";
					print_r($GLOBALS);
					echo "</pre>";

					?>

转载请注明出处: http://blog.csdn.net/junzaivip

时间: 2025-01-03 23:46:17

PHP第六课 数组的用法的相关文章

第十六课 数组的引入 【项目1-5】

第十六课 数组的引入 项目一 [数组大折腾] (1)创建一个有20个元素的整型数组,通过初始化,为数组中的前10个元素赋初值,然后通过键盘输入后10个元素的值,从前往后(从第0个到第19个)输出数组中元素的值,每5个元素换一行. [cpp] view plain copy print? int main( ) { int a[20]={...};  //初始化前10个元素 //键盘输入后10个元素的值 //由前往后输出数组中所有元素的值 printf("由前往后,数组中的值是:\n")

PHP第七课 数组的用法2

学习纲要: 1.了解数组函数 2.随机输出验证码 1.数组函数: 数组函数: //作用:提供了很多官方写的非常有用的代码段,提高编写速度. 1.数组的键值操作函数 2.统计数组的元素和唯一性 3.使用回调函数处理数组的函数 4.数组的排序函数 5.拆分,合并,分解与结合函数 6.数组与数据结构 7.其他有用的数组处理函数 数组的键值操作函数: 1.array_values(); 模拟获取key和value的值 <?php $arr=array("name"=>"u

【C语言探索之旅】 第二部分第六课:创建你自己的变量类型

0 内容简介 1.课程大纲 2.第二部分第六课: 创建你自己的变量类型 3.第二部分第七课预告: 文件读写 课程大纲 我们的课程分为四大部分,每一个部分结束后都会有练习题,并会公布答案.还会带大家用C语言编写三个游戏. C语言编程基础知识 什么是编程? 工欲善其事,必先利其器 你的第一个程序 变量的世界 运算那点事 条件表达式 循环语句 实战:第一个C语言小游戏 函数 练习题 习作:完善第一个C语言小游戏 C语言高级技术 模块化编程 进击的指针,C语言王牌 数组 字符串 预处理 创建你自己的变量

OpenGL教程翻译 第十六课 基本的纹理贴图

OpenGL教程翻译 第十六课 基本的纹理贴图 原文地址:http://ogldev.atspace.co.uk/(源码请从原文主页下载) Background 纹理贴图就是将任意一种类型的图片应用到3D模型的一个或多个面.图片(也可以称之为纹理)内容可以是任何东西,但是他们一般都是一些比如砖,叶子,地面等的图案,纹理贴图增加了场景的真实性.例如,对比下面的两幅图片. 为了进行纹理贴图,你需要进行三个步骤:将图片加载到OpenGl中,定义模型顶点的纹理坐标(以对其进行贴图),用纹理坐标对图片进行

BeagleBone Black板第六课:C++编程控制GPIO基础

BBB板第六课:C++编程控制GPIO基础 在一上课我们通过Shell脚本编程实现了对GPIO端口的简单输出控制,实现对两个LED指示灯的交替点亮和关闭,接下来的一两节课,将通过C++程序来实现Shell脚本的功能.为了实现对应的程序控制,我查阅了好多资料,测试过程中发觉网上的一些程序套用过来总是出现各种各样的编译错误,压根就控制不了BBB板,不知是我的BBB板太新,还是以前的程序太旧.最后还是从头开始,重新研究BBB板的文件系统,找出头文件,找出所有相关的函数,终于实现GPIO的C++程序控制

NeHe OpenGL教程 第三十六课:从渲染到纹理

转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线教程的编写,以及yarn的翻译整理表示感谢. NeHe OpenGL第三十六课:从渲染到纹理 放射模糊和渲染到纹理: 如何实现放射状的滤镜效果呢,看上去很难,其实很简单.把渲染得图像作为纹理提取出来,在利用OpenGL本身自带的纹理过滤,就能实现这种效果,不信,你试试. 嗨,我是Dario Corn

NeHe OpenGL教程 第六课:纹理映射

转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线教程的编写,以及yarn的翻译整理表示感谢. NeHe OpenGL第六课:纹理映射 纹理映射: 在这一课里,我将教会你如何把纹理映射到立方体的六个面. 学习 texture map 纹理映射(贴图)有很多好处.比方说您想让一颗导弹飞过屏幕.根据前几课的知识,我们最可行的办法可能是很多个多边形来构建

【C语言探索之旅】 第一部分第六课:条件表达式

内容简介 1.课程大纲 2.第一部分第六课:条件表达式 3.第一部分第七课预告:循环语句 课程大纲 我们的课程分为四大部分,每一个部分结束后都会有练习题,并会公布答案.还会带大家用C语言编写三个游戏. C语言编程基础知识 什么是编程? 工欲善其事,必先利其器 你的第一个程序 变量的世界 运算那点事 条件表达式 循环语句 实战:第一个C语言小游戏 函数 练习题 习作:完善第一个C语言小游戏 C语言高级技术 模块化编程 进击的指针,C语言王牌 数组 字符串 预处理 创建你自己的变量类型 文件读写 动

【Cocos游戏实战】功夫小子第六课之游戏主功能场景的分析和实现

本节课的视频教程地址是:第六课在此 如果本教程有帮助到您,希望您能点击进去观看一下,而且现在注册成为极客学院的会员,验证手机号码和邮箱号码会赠送三天的会员时间,手机端首次也可以领取五天的会员时间哦(即使是购买年会员目前也仅仅是年费260),成为极客学院学习会员可以无限制的下载和观看所有的学院网站的视频,谢谢您的支持! 转载请注明出处:http://blog.csdn.net/suool/article/details/46851335 前言 经过前面五节课的学习我们目前还剩的未完成的工作就是游戏