天天看点

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" rel="external nofollow"  target="'_blank">junjun2</a><br>
				<a href="rev.php?name=junjun3&age=23" target="_blank" rel="external nofollow"  target="'_blank">junzai3</a><br>
				<a href="rev.php?name=junjun4&age=25" target="_blank" rel="external nofollow"  target="'_blank">junjun4</a><br>
				<a href="rev.php?name=junjun5&age=27" target="_blank" rel="external nofollow"  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