什么是数组
实际上是一个有序映射。映射是一种把 values 关联到 keys
传统上把数组定义为一组有某种共同特性的元素,如相似性,和类型,每个元素由一个特殊的
标识来区分,这称为key.
数组的类型
数值数组
带有数字 ID 键的数组
$names = array("a","b","c");
关联数组
数组中的每个 ID 键关联一个值
$ages = array("a"=>20, "b"=>30, "c"=>40);
多维数组
包含一个或多个数组的数组
在多维数组中,主数组中的每个元素也是一个数组。在子数组中的每个元素也可以是数
组,以此类推
数组的构造
快速创建数组
PHP创建数组是不需要指定大小,也可以不用事先申明(PHP是松散型语言).
要引用树组的元素,可以用一对中括号来指示.只需要建立引用就可以创建数组
如:
$array[0] = ‘a’;
然后可以如下输出$array 第一个元素
echo $array[0];
接着我们可以映射更多的元素
$array[1] = ‘b’;
$array[2] = ‘c’;
….
$array[20] = ‘m’;
如果认为索引是连续的,那可以省略索引
如:
$array[] = ‘b’;
$array[] = ‘c’;
….
$array[] = ‘m’;
数组的键名可以是整形数字,字符或字符串 索引数组(键名为数字),关联数组(字符或
数字混合)
如array(‘a’,’b’,’c’);
数组分类一维 ,二维 。。 。
一维数组只保存一列数据
$info[] = 'a',
$info[] = 'b';
$info[] = "a";
$info[] = "a";
$info[] = "a";
$info[] = "a";
$info[] = "a";
数组的遍历方式 for,foreach while
var_dump($info);
for($i=0;$i<=7;$i++){
echo $info[$i];
}
Foreach($info as $key=>$value){
Echo ‘key=’.$key.” Val=”.$val;
}
快速创建数组 range(star,end,[step])
$testArray = range(a,z,1);
print_r($testArray);
为数组追加数据
$testArray[] = "1";
array_push($testArray,'2','3','4');//追加到末尾
print_r($testArray);
修改数组内容
$testArray[1] = 'f';
$testArray = array_pad($testArray,5,'raojinpg');
//array_pad填补到数组的指定长度不修改原来的值
print_r($testArray);
访问和处理数组
$array_sort = array("世界","area","深圳","shenzhen");//按ascii
$array_sort = array("1",34,5,6,76);//按大小
sort($array_sort);
print_r($array_sort);
//sort【数字索引】数字,英文 ,汉字
//$states = array('LN'=>"LIANLAO",'BJ'=>"beijing");
//关联数组排序asort()按数组关联型,ksort()按数组索引升序,krsort()按数组索引降序
数组随机抽取 shuffle(),array_rand()
$rand_array = array(1,2,3,4,5,6,14,8,9,10,1,2,3,1);
shuffle($rand_array);//打乱排序
$rand_array = array_rand($rand_array,3);//随机取数据 如果不带范围默认一个
print_r($rand_array);
print_r(array_count_values($rand_array));//统计数组中元素出现的次数
echo array_key_exists(14,$rand_array);//查询 键名是否存在
echo in_array(10,$rand_array);//查询值是否存在
echo array_sum($rand_array);求和
print_r(array_unique($rand_array));//去除数组中重复的元素
//移动数组内部指针
$zh_array = array("apple","orange","banana","yali");
echo current($zh_array);
echo next($zh_array);
echo prev($zh_array);
echo current($zh_array);
echo end($zh_array);
//取得关联数组的键名
$states = array('LN'=>"LIANLAO",'BJ'=>"beijing");
print_r(key($states));//第一个
print_r(array_keys($states));//全部键名
print_r(array_values($states));//全部键值
is_array()//判断数组的 类型
unset($array[0]);//删除数组指定的元素
array_unshift($array,$value1,$value2..);//在数组的顶部插入数据
array_splice($array,$位子,长度,值)//删除数组一部分元素并用其他值代替
$states = array('LN'=>"LIANLAO",'BJ'=>"beijing",'NJ'=>"beijing",'TJ'=>"beijing");
array_splice($states,2,1,"raojinpg");
print_r($states);
count($array);sizeof($array);//统计数组
array_flip($array);//键名和键值替换
array_pop($states);//删除末尾元素
array_push();//追加到末尾
array_shift($states);//删除首元素
array_unshift();//追加到开始
print_r($states);