数据就是一组数据的集合。数组的每个元素由两部分组成 键和值。
PHP中的数组名必须用$开头 第一个字符必须是字母或者下划线,不能用数字开头。
例如
$array1 = array("joedlut"=>12,"samshit"=>14,"gotohell"=>15);
注意,同一个程序中,标量变量和数组变量不能重名。
数组名区分大小写
PHP中创建数组的方法:
通过array()函数
array array(mixed...)
$array1 = array("JAVA" => "java","PHP"=>"php","C++"=>‘c++‘); print $array1["JAVA"];//通过索引下标打印数组的某个元素 print_r($array1);
PHP中数组的类型:
数字索引数组(使用数组作为键) 和 关联数组(使用字符串作为键)
输出数组:注意,是输出整个数组的结构(感觉没什么用)
使用print_r($array_name) 或者var_dump($array_name)
print_r($array1); var_dump($array1);
如何遍历数组?
使用foreach
foreach($array1 as $key => $value){ print "$key -------$value"."<br>"; }
如何获取数组元素的个数
int count(mixed array)
echo count($array1); //3
合并数组
array array_merge(array array1,array array2....)//如果两个数组的字符串键名相同,那么后者会覆盖前面的值。对于数字键名相同的值来说则不会覆盖
array array_merge_recursive(array1,array2,array3....)//不同于上者,两个字符串键名相同的元素的值不会被覆盖。字符串键名相同的元素会组成一个新的数组作为元素存储
$array1 = array("JAVA"=>"JAVA 实战开发","PHP"=>"PHP从入门到精通"); $array2 = array("JAVA"=>"JAVA 从入门到精通","C++"=>"C++从入门到精通"); $array3 = array_merge($array1,$array2); $array4 = array_merge_recursive($array1,$array2); print_r($array3); print_r($array4);
将字符串转换为数组
array explode(string separator,string string);
$str = "joe,sam,shit"; $array = explode(",",str);// print_r($array);
将数组转为字符串
$array = array("joe","sam","shit"); $str = implode(" ",$array); print $str;
对数字索引数组进行排序
bool sort(array &array,int sort_flags)//升序
bool sort(array &array,int sort_flags)//降序
sort_flags的种类
SORT_NUMERIC 作为数值进行排序
SORT_REGULAR 采用普通方式进行排序(不改变其类型) 默认
SORT_STRING 作为字符串进行排序
$array = array(90,23,345,12,-12,34); sort($array);//传入的是引用,原来数组的值被改变 print_r($array);
对关联数组进行排序
int ksort(array array,int sort_flags);//对关联数组的索引值进行排序
int asort(array array,int sort_flags);//对数组的元素值进行排序 升序
int arsort(array array,int sort_flags);//降序
$array2 = array("java"=>12,"php"=>8,"c++"=>"23"); ksort($array2); print_r($array2); echo "<br>"; asort($array2); print_r($array2); echo "<br>"; arsort($array2); print_r($array2);