php数组定义与遍历,php数组函数与多维数组

发布时间:2019-12-12编辑:脚本学堂
php数组的定义与数组遍历,php数组函数的用法与例子,php数组取值赋值,php多维数组的循环输出等,供大家学习参考。

1、php数组定义和遍历 
2、php数组函数

1、数组定义:
 

$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>"; 
?> 

2、数组下标:
如果是字母
 

$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

3、数组取值:
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] => goxuexi@126.com
[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>"; 
?>