数组
一:数组的分类
1.索引数组
下标是整数的数组,下标从0开始依次类推:
$arr=array('a','b','c','d');
echo $arr[1];
索引数组的三种赋值方式:
//第一种
$arr = array("a","b");
//第二种
$arr[2]='c';
$arr[5]='f';
//第三种
$arr2 = array("0"=>"苹果","1"=>"香蕉","10"=>"橘子");
索引数组的访问:
数组的变量名称后跟中括号的键值访问
arr[2];2:关联数组是指数组的键值是字符串的数组
arr = array(“name”=>”leifeng”,”age”=>19,”sex”=>”男”);
echo
arr[‘name′];pre(
arr);
两种赋值方式:
//第一种
$arr = array("name"=>"leifeng","age"=>19,"sex"=>"男");
//第二种
$arr['height']=170;
关联数组的取值:
数组名称加中括号键值方式,键值用中括号或者单引号包裹;
$arr['name'];
3:数组的下标
$arr = array("name"=>"leifeng",19,"sex"=>"男",20,100=>8,9,10);
pre($arr);
Array
(
[name] => leifeng
[0] => 19
[sex] => 男
[1] => 20
[100] => 8
[101] => 9
[102] => 10
)
二.数组的遍历
1:for循环
$arr1 =array("a","b","c","d","e");
//for循环
$num = count($arr);
for($i=0;$i<$num;$i++){
echo $arr1[$i]."<br>";
}
2:foreach()循环
$arr2 =array("name"=>"leifeng","age"=>19,"sex"=>"男");
//foreach循环
foreach($arr1 as $v){
echo $v.'<br>';
}
foreach($arr2 as $k=>$v){
echo $k.":".$v."<br>";
}
3:while…list…each…循环
//while..list…each…
while(list($key,$val)=each($arr2)){
echo $key.":".$val.'<br>';
}
4.多维数组的遍历
$arr = array("a","b",array("c","d",array("e","f")));
//for()循环
for($i=0;$i<count($arr);$i++){
if(is_array($arr[$i])){
for($j=0;$j<count($arr[$i]);$j++){
if(is_array($arr[$i][$j])){
for($k=0;$k<count($arr[$i][$j]);$k++){
echo '|---'.$arr[$i][$j][$k].'<br>';
}
}else{
echo '|--'.$arr[$i][$j].'<br>';
}
}
}else{
echo '|-'.$arr[$i].'<br>';
}
}
echo '<hr color="red">';
//foreach循环
foreach($arr as $v){
if(is_array($v)){
foreach($v as $v2){
if(is_array($v2)){
foreach($v2 as $v3){
echo '|---'.$v3.'<br>';
}
}else{
echo '|--'.$v2.'<br>';
}
}
}else{
echo '|-'.$v.'<br>';
}
}
echo '<hr color="red">';
//递归循环
function test($arr){
foreach($arr as $v){
if(is_array($v)){
test($v);
}else{
echo '|-'.$v.'<br>';
}
}
}
test($arr);