学习ing!
目录:
0×01 数组的分类
0×02 数组的创建
0×03 遍历数组
0×04 预定义超全局数组
0×01 数组的分类
分为两种数组索引数组和关联数组
数组的名称为整形时是索引数组,为字符串类型时是关联数组。
0×02 数组的创建
php定义数组时,不需要提前声明,不需要定义大小,直接创建,使用array()创建。
数组输出需要使用print_r()函数,或者var_dump()函数。
方法一:直接为数组元素赋值即可创建。
$stduent[0]=12
$student[1]='hello'
$student[2]='false'
当然索引值可以是整数也可以是字符串,也可以不写,不写索引值默认是 索引数组,从0开始
方法二:
变量名称=array(数据,数据,。。。);
不写索引值默认是 索引数组,从0开始,自动分配。
$student=array(10,"你好",66.66,true);
方法三:
变量名称=array(
索引值=>数据,
…
);
具体的值,.......);
$student=array(10,'孙胜利',true,60.5);//一维数组
var_dump($student);
$student1=array(
0=>10,
1=>'你好',
2=>true,
3=>60.5
);
var_dump($student1);
$student2=array(
'num'=>11,
'name'=>'你好',
'sex'=>true,
'grade'=>80.5,
10=>'dqwdwqdwq'
);
var_dump($student2);
?>
需要调用数组里的某一个值的方法:echo 数组变量名称[索引值]
数据里面还可放数组类型的数据,同一个数组中存储任何类型的数据(类似于C语言的二维数组)
多维数组:
访问数值的方法
变量名称[索引值][索引值]…
array(1,'你',true,60.5),
1=>array(2,'好',true,80.5),
2=>array(3,'啊',false,85.5)
);
/*
$students=array(
array(1,'你',true,60.5),
array(2,'好',true,80.5),
array(3,'啊',false,85.5)
);
*/
var_dump($students);
echo $students[0][1];
?>
0×03 遍历数组
类似于其他语言的循环。
注意:count(数组[,1])返回数组里面数据的个数,还可以获取多维数组的个数 ,当然一般我们只传一个数组进去就可以了
①用for语句来遍历数组
$arr=array(
'a','b','c','d','e','f'
);
for($i=0;$i
数组元素数量为6 ,输出结果是abcdef。
$arr1=array(
array(1,2,3),
array(4,5,6)
);
echo count($arr1);
*/
这样只会输出第一层的数组,数量为2。
如果我们要输出这个数组的全部的个数,应该怎样?
$arr1=array(
array(1,2,3),
array(4,5,6)
);
echo count($arr1,1);//2+6=8
这样就可以输出第一层有2个元素,第二层有6个元素,所以总共有8种元素。
for循环的缺点:只适合索引数组,不适合关联数组,但是关联数组在php语言中应用非常广泛,所以for循环用的比较少
②foreach语句遍历数据
1)foreach(数组变量 as 变量1){
//每次循环执行的语句
变量1代表当前正在经历(访问)的数据
}
'你好',
'num'=>10
);
foreach($arr1 as $value){
echo $value.'
';
}
?>
2)foreach(数组变量 as 变量1=>变量2){
//每次循环执行的语句
变量1代表当前正在经历(访问)的数据的索引值
变量1代表当前正在经历(访问)的数据
}
'孙胜利',
'num'=>10
);
foreach($arr1 as $key=>$value){
echo $key.'=>'.$value.'
';
}
?>
如何遍历多维数组?
递归怎么样? foreach里面再套一个foreach!
这个就可以。
但是,我们应该怎样访问array( 1,2,3,4,5 )
这个数组???
';
//var_dump($val2);
}
}
?>
这样应该就行了。
例子:
';
foreach ($students as $val){
if($val[2]===true){
$val[2]='男';
}else{
$val[2]='女';
}
echo "{$val[0]} {$val[1]} {$val[2]} {$val[3]} ";
}
echo '';
?>
0×04 预定义超全局数组
已经定义好了(存在)的变量(存放的数据的类型是数组)。
超全局:超级全局变量,作用域(有效区域)!就类似于c语言里头文件包含的函数可以让我们在全局任意位置使用!
超全局变量一是有全局变量的特性,而是无须声明直接使用。(系统创建及维护)
预定义超全局变量共有九个:
$_GET
$_POST
$_REQUEST
$_SERVER
$_ENV
$_FILES
$_COOKIE
$_SESSION
$GLOBALS
①
get方式
比如
?参数名=参数值&参数名=参数值…
http://127.0.0.1/demo5_3/index.php?参数名=参数值
在服务器端(请求的php文件这边)可以通过$_GET来获取到
$_GET索引值为参数名,索引值对应的数据就是参数值
但是GET的内容会出现在URL框里,所以不是很安全
②
post方式
比如
表单 post发送过来的!
可以通过$_POST来获取到!
POST方式和GET方式的区别:
POST方式安全性好
数据传输大小(POST方式大)
保存到收藏夹(GET方式)
③
$_REQUEST
作用:
$_REQUEST 主要包含包含 $ _GET 、$_POST、 $_COOKIE数组的信息。
注意不要经常使用 $ _REQUEST(因为将多个信息混合)。
通过$_SERVER[‘REQUEST_METHOD’]区分GET和POST
④
$ _SERVER主要包含了http请求行和消息头的信息,同时还有服务器的一些信息(DOCUMENT_ROOT,SCRIPT_FILENAME…)。
⑤
获取服务器端的环境变量,通过修改php.ini的variables_order="EGPCS"启动。
⑥
包含了全部变量的全局组合数组。
当定义一个全局变量,也会被$GLOBALS管理。