数组基本概念
直接赋值声明数组
- 一个数组中存的是多个内容, 数组中的内容叫作 “元素”
- 每个元素都是由 键和值 组成的 key/ value key下标
$a = array("one"=>"11111111", "two"=>"222222222"); - 就是通过 key 使用 值
下标有两种类型: 一种是整数(索引数组), 一种是字符串(关联数组)
[]来操作下标, 也可以使用{}进行互换, 建议使用 []来指定下标 - 在使用下标时,如果是关联数组, 一定要使用引号, 不要使用常量名称
- 数组的自动增涨下标, 默认是从0开始的, 自动增涨的都是出现过的最大值加1
- 关联数组的字符串下标, 不会影响索引下标的排列规则!
- 使用array()函数声明数组, 默认是索引的下标, 是从0开始
- 使用 => 符号指定下标
php5.4以后, 可以像其他语言一样声明数组了 - 删除数组中的一个元素使用unset(), 下标不会重新索引, 需要使用array_values()函数重新索引
直接赋值:
$arr[0] = 1;
$arr[1] = 2;
$arr[2.7] = 3;
$arr[true]=5;
$arr[false]=6;
$arr[null]=7;
$arr{'one'} = 1;
$arr['two'] = 2;
$arr['three'] = 3;
print_r($arr);
数组下标排列规则:
$arr[]=10; //0
$arr[]=10; //1
$arr[]=10; //2
$arr[8]=10; //8
$arr[]=10; //9
$arr[9]=11; //9
$arr[]=10; //10
$arr[4]=44; //4;
$arr[] = 55; //
$arr['one']=66;
$arr[] = 99;
$arr[-100]=-100;
$arr[] = 'aa';
echo '<pre>';
print_r($arr);
echo '</pre>';
声明数组:
function demo() {
return array("one", "two", "three");
}
$arr = demo();
echo $arr[0];
echo '<br>';
echo demo()[1];
删除数组:
$arr = ["one", "two", "three", "four"];
unset($arr[2]);
$arr = array_values($arr);
print_r($arr);
循环删除数组例子:
function xdw($m, $n) {
$arr = array();
$a = "a";
for($i=0; $i<$m; $i++) {
$arr[] = $a++;
}
$i=0;
while(count($arr) > 1) {
if($i%$n == 0) {
unset($arr[$i]);
} else {
$arr[] = $arr[$i];
unset($arr[$i]);
}
$i++;
}
return $arr;
}
print_r(xdw(80, 7));
二维数组:(数组的数组)
<?php
// $one = array("name"=>"zs","age"=>20,"sex"=>"男","email"=>"aaaaa@.com");
// $two = array("name"=>"ls","age"=>21,"sex"=>"女","email"=>"bbbbb@.com");
// $three = array("name"=>"ww","age"=>22,"sex"=>"男","email"=>"ccccc@.com");
//
// $group=array($one,$two,$three);
$group=array(
array("name"=>"zs","age"=>20,"sex"=>"男","email"=>"aaaaa@.com"),
array("name"=>"ls","age"=>21,"sex"=>"女","email"=>"bbbbb@.com"),
"three"=>array("name"=>"ww","age"=>22,"sex"=>"男","email"=>"ccccc@.com")
);
// var_dump($group[1]);
// $arr=$group[1];
// echo $arr['email'];
// echo $group[1]['email'];
echo $group['three']['name'];
多维数组:
用类封装数组
<?php
// $class=[
// "group1"=>[
// ["name"=>"zs","age"=>20,"sex"=>"男","email"=>"aaaaa@.com"],
// ["name"=>"ls","age"=>21,"sex"=>"女","email"=>"bbbbb@.com"],
// ["name"=>"ww","age"=>22,"sex"=>"男","email"=>"ccccc@.com"]
// ],
// [
// ["name"=>"zs","age"=>20,"sex"=>"男","email"=>"aaaaa@.com"],
// ["name"=>"ls","age"=>21,"sex"=>"女","email"=>"bbbbb@.com"],
// ["name"=>"ww","age"=>22,"sex"=>"男","email"=>"ccccc@.com"]
// ],
// [
// ["name"=>"zs","age"=>20,"sex"=>"男","email"=>"aaaaa@.com"],
// ["name"=>"ls","age"=>21,"sex"=>"女","email"=>"bbbbb@.com"],
// ["name"=>"ww","age"=>22,"sex"=>"男","email"=>"ccccc@.com"]
// ]
// ];
// echo $class[0][1]['age'];
第一个方括号不管有没有顺序排,第二个不填默认为0
$group[9][1]="zs";
$group[][1]=20;
$group[][1]='ls';
$group[][1]=21;
echo '<pre>';
print_r($group);
echo '</pre>';
网友评论