数组分为二种:
1、索引数组
2、关联数组
索引数组:
//定义方法:使用内置涵数:array();定义例如!
$a = array();
//定义变量$a 为一个空数组!
//也可以使用其他的方法,直接弄
$user= ['0'=>'张三','1'=>'18','2'=>'111@qq.com'];
//或者
$user = ['张三',18,'111@qq.com'];
echo $user[0].$user['1'].$user['2'];
//以上就是索引数组;即默认使用数字的
关联数组
$user= ['name'=>'张三','age'=>'18','email'=>'111@qq.com'];
//用自定义的方式来定义关联数组,一般是和数据库结构有关系,以上的name,age,email都是有特别意义的.跟数据库表设计关系有关系!
通过数组指针访问;使用到的关键字;key(),current(),end(),next(),prev();reset();
key() 返回数组中的当前元素的键key
current() 反回数组中的当前元素的值,
end() 反回数组中最后的一个的元素,
next() 将内部指针下移一位,
prev() 将内部指针往上移一位
reset() 把指针移到数组第一个元素.
$user= ['name'=>'张三','age'=>'18','email'=>'111@qq.com'];
echo key($user).":".current($user)."<br/>";
next($user);
echo key($user).":".current($user)."<br/>";
next($user);
echo key($user).":".current($user)."<br/>";
next($user);
//输出:
//name:张三 gae:18 email:111@qq.com
既然数组每次需要的都是要下移一位next()的操作的话,那有没有办法一次完成呢,这里PHP给我们提供了以下几种循环方式
whil() for() foreach()三种循环方式!
while()循环
$user= ['name'=>'张三','age'=>'18','email'=>'111@qq.com'];
//如果while循环为真
while(true){
//输出当前数组的key,并且返回当前指针下的元素
echo key($user).":".current($user)."<br/>";
//为了防止死循环程序崩溃!这里需要添加一个指针下移的操作,如果数组中还有指,那就继续continue;,否则跳出循环!break;
if($next($user)){
continue;
}else{
break;
}
}
for()循环
;
$user= ['name'=>'张三','age'=>'18','email'=>'111@qq.com'];
for($i=0;$i<count($user);$i++){
echo $user[$i].'<br/>';
}
通过foreach()循环,关联/索引数组都适用
//基础语法:foreach($array as $key => value)
$user= ['name'=>'张三','age'=>'18','email'=>'111@qq.com'];
foreach($user as $key =>$value){
echo $key."=".$value."<br/>";
}
通过foreach + list() 循环访问多维数组;
$user=[
['name'=>'张三','age'=>'18','email'=>'111@qq.com'],
['name'=>'李四','age'=>'20','email'=>'222@qq.com']
];
//list();涵数的作用!
/*
list($a,$b,$c)=[1,2,3];
直接将赋值操作按照11对等的关系赋值并且创建相应的变量;
$a,$b,$c;
*/
foreach($user as list('name'=>$name,'age'=>$age,'email'=>$email)){
printf('姓名=%s,年龄=%i,邮件=%s',$name,$age,$email);
}
/*
输出:
姓名:张三,年龄=18,邮件=111@qq.com
姓名:李四,年龄=20,邮件=222@qq.com
*/
结论:
了解数组的使用,定义,及访问,并且对循环数组有了初步的了解,至于,while , for,foreach ,foreach+list等方法具体操作,具体看情况!