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 查看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域名
[SERVER_ADDR] => 127.0.0.1//serverip
[SERVER_PORT] => 80//port号
[REMOTE_ADDR] => 127.0.0.1 //client訪问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>"; ?>
转载请注明出处: http://blog.csdn.net/junzaivip
版权声明:本文博客原创文章。博客,未经同意,不得转载。
PHP第六课 使用方法数组的更多相关文章
- PHP第七课 使用方法数组2
学习平台: 1.了解数组函数 2.输出随机验证码 1.数组函数: 数组函数: //作用:提供了非常多官方写的非常实用的代码段,提高编写速度. 1.数组的键值操作函数 2.统计数组的元素和唯一性 3.使 ...
- NeHe OpenGL教程 第三十六课:从渲染到纹理
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...
- 【C语言探索之旅】 第二部分第六课:创建你自己的变量类型
内容简介 1.课程大纲 2.第二部分第六课: 创建你自己的变量类型 3.第二部分第七课预告: 文件读写 课程大纲 我们的课程分为四大部分,每一个部分结束后都会有练习题,并会公布答案.还会带大家用C ...
- 【C语言探索之旅】 第一部分第六课:条件表达式
内容简介 1.课程大纲 2.第一部分第六课:条件表达式 3.第一部分第七课预告:循环语句 课程大纲 我们的课程分为四大部分,每一个部分结束后都会有练习题,并会公布答案.还会带大家用C语言编写三个游戏. ...
- NeHe OpenGL教程 第四十六课:全屏反走样
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...
- NeHe OpenGL教程 第十六课:雾
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...
- NeHe OpenGL教程 第六课:纹理映射
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...
- Coursera公开课笔记: 斯坦福大学机器学习第六课“逻辑回归(Logistic Regression)” 清晰讲解logistic-good!!!!!!
原文:http://52opencourse.com/125/coursera%E5%85%AC%E5%BC%80%E8%AF%BE%E7%AC%94%E8%AE%B0-%E6%96%AF%E5%9D ...
- [译]Quartz.NET 框架 教程(中文版)2.2.x 之第六课 CronTrigger
第六课 CronTrigger CronTrigger比SimpleTrigger更常用,当你需要一个基于日历般概念的作业调度器,而不是像SimpleTrigger那样精确指定间隔时间. 使用Simp ...
随机推荐
- ios 动态设置Cell高低
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPa ...
- Android - 用Fragments实现动态UI - 创建灵活的UI
当设计程序来支持各种不一样的屏幕尺寸时,可以在不同的布局中重用fragment来根据可用的屏幕大小来优化用户体验. 例如,在手机上可能使用一个fragment来使用单窗口用户体验比较合适.但是,你可能 ...
- paip.jdk1.4 1.5(5.0) 1.6(6.0) 7.0 8.0特点比较与不同
paip.jdk1.4 1.5(5.0) 1.6(6.0) 7.0 8.0特点比较与不同 作者Attilax , EMAIL:1466519819@qq.com 来源:attilax的专栏 地 ...
- python基础课程_学习笔记26:编程的乐趣
编程的乐趣 编程柔术 当你坐下来,打算如何组织计划要定时,具体程序,然而,无论什么经验.在实现时间的函数的,你会逐渐学会了原来的设计,实用的新知识.我们不应该忽视沿途汲取的教训,相反,它们用于其他设计 ...
- UVA 239 - Tempus et mobilius. Time and motion(更换周期)
UVA 239 - Tempus et mobilius. Time and motion 题目链接 题意:这题题意也是吊得飞起,看了老半天,大概是这样: 有一个放球的队列.和3个轨道(说白了就是栈) ...
- Android 儿子Activity在启动过程中的流程组件 && 儿子Activity在一个新的进程组件启动过程
1.儿子Activity在启动过程中的流程组件 在Android Activity启动过程http://blog.csdn.net/jltxgcy/article/details/35984557一文 ...
- 一起写2048(160行python代码)
前言: Life is short ,you need python. --Bruce Eckel 我与2048的缘,不是缘于一个玩家.而是一次,一次,重新的ACM比赛.四月份校赛初赛,第一次碰到20 ...
- codeforces 260 div2 A,B,C
A:水的问题.排序结构.看看是否相同两个数组序列. B:他们写出来1,2,3,4,的n钍对5余.你会发现和5环节. 假设%4 = 0,输出4,否则输出0. 写一个大数取余就过了. B. Fedya a ...
- arcgis,mapinfo(mapxtreme),openlayers专业GIS系统开发
专业从事基于C#,WinForm ,WPF,Silverlight,WCF以及MS Sql Server 2000/2005/2008/2012 Oracle 9i/10g/11g数据库系统的ERP, ...
- STL源代码分析——STL算法merge合并算法
前言 因为在前文的<STL算法剖析>中.源代码剖析许多.不方便学习.也不方便以后复习,这里把这些算法进行归类.对他们单独的源代码剖析进行解说.本文介绍的STL算法中的merge合并算法. ...