PHP数组

来源:互联网 发布:初学编程怎么学 编辑:程序博客网 时间:2024/04/20 09:02

PHP数组是一组具有相同数据类型元素组成的一个有序映射。PHP中的映射是一种把values(值)映射到keys(键名)的类型。数组通过使用array()函数定义,其值使用"key=>value"定义,多个值通过逗号分隔。key可以是 integer 或者string。
1、创建和访问数组
(1)创建数组arr1,如:
$arr1 = array(1,2,3,7);
echo "第一个元素:".$arr1[0]."<br />";
(2)创建数组arr2,如:
$arr2 = array(
"first"=>1,
"second"=>2,
"third"=>3
);
//echo "第一个元素:".$arr2["first"]."<br />";
注:键名的设置参照以下规则:
①可以使用自定义的键名
②直接为数组赋值,系统会为这种方式建立的数组,自动添加一个以0开头的序列作为键名
③如果对给出的值没有指定键名,则取当前最大的整数索引值,而新的键名将是该值加1。如果指定的键名已经有了值,则该值会被覆盖,如:
$arr3 = array(5 => 43, 32, 56, "b" => 12);
//等同于
$arr3 = array(5 => 43, 6 => 32, 7 => 56, "b" => 12);
④以字符串作为键名时,应加上引号。
⑤使用True作为键名时,其值将会转化为数字1;使用False作为键名时,其值将会转化为数字0。
⑥使用空字符串作为键名,将新建或覆盖一个用空字符串作为键名的值。使用NULL作为键名等同于使用空字符串。
⑦数组和对象不能作键名。
(3)显示数组详细信息,使用系统函数print_r或var_dump,如:
echo "显示数组\$arr2的详细信息:<br />";
print_r($arr2);

//或

//var_dump($arr2);
echo "<br />";
2、修改数组(增、删、改数组中的元素),如:
例一:
$arr4 = array(5=>1,12=>2);      //创建数组
$arr4[] = 56;    // 等同于 $arr4[13] = 56;  //添加一个元素,key:13,value:56
$arr4["x"] = 42;      //添加一个元素,key:“x”,value:42
$arr4[12]=33;     //将键名为12的元素值改为33
unset($arr4[5]);     //删除键名为5的元素
unset($arr);      //删除整个数组中的元素

例二:
//创建一个简单的数组
$array = array(1, 2, 3, 4, 5);
print_r($array);
echo "<br />";
//现在删除其中的所有单元,但保持数组本身的结构
foreach ($array as $i => $value) {
    unset($array[$i]);
}
print_r($array);
echo "<br />";
//添加一个单元(注意新的键名是 5,而不是你可能以为的 0)
$array[] = 6;
print_r($array);
echo "<br />";
//重新索引:
$array = array_values($array);
$array[] = 7;
print_r($array);
echo "<br />";
输出结果:
Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 ) 
Array ( ) 
Array ( [5] => 6 ) 
Array ( [0] => 6 [1] => 7 ) 
3、遍历数组,如:
$arr5 = array(1, 2, 3, 4, 5);
echo "遍历数组1:<br />";
foreach($arr5 as $arr5_key=>$arr5_value){
 echo $arr5_key.": ".$arr5_value."<br />"; 
}
echo "遍历数组2:<br />";
foreach($arr5 as $arr5_value){
 echo $arr5_value."<br />"; 
}
4、数组运算符,如:
$arr6 = array(1,3,5);
$arr7 = array(2,3,6,8);
//联合:"+",它把右边的数组附加到左边的数组后,但是重复的键值不会被覆盖。 如:
$arr8 = ($arr6+$arr7);
print_r($arr8);
echo "<br />";
//相等(==)、全等(===)、不等(!=或<>)、不全等(!==)
echo ($arr6===$arr7);
echo "<br />";
5、多维数组,如:
//定义一个多维数组
$mArr = array(
 "numbers" => array(1,2,3,4,5,6,7),
 "colors" => array("红","橙","黄","绿","蓝","靛","紫")
);
//遍历多维数组
echo "遍历多维数组:<br />";
foreach($mArr as $mkey=>$mvalue){
 echo $mkey.":";
 foreach($mvalue as $key=>$value){
  echo $value." ";
 }
 echo "<br />";
}
6、常用数组函数
(1)count:统计数组中的元素个数,如:
$arr9 = array(2,4,6,8,9);
echo "数组arr9中的元素个数为:".count($arr9)."<br />";
(2)is_array:判断是否数组,如:
$var = "一个变量";
if(is_array($arr9)){
 echo "arr9是数组<br /> ";
}
if(is_array($var)){
 echo "var是数组<br />";
}else{
 echo "var不是数组<br />";
}
(3)explode:将一个字符串拆分成一个数组,如:
$str = "张三,李四,王五";
$arr = explode(",",$str);
print_r($arr);
echo "<br />";


0 0