PHP数组与其他语言的数组有些不同,在PHP中,数组包含两种类型的数组:
其中,数字索引数组是指其key为数字,而后者可以使用字符串作为其key,这相当于map。
数组的声明和初始化使用函数array()
,其格式如下:
$a = array()
对于数字索引的数组,如下:
<?php
$a = array("a", "b", "c");
print_r($a);
?>
输出结果为:
Array
(
[0] => a
[1] => b
[2] => c
)
对于关联数组,使用运算符=>
连接key和value,如下所示:
<?php
$a = array("a"=>"A", "b"=>"B", "c"=>"C");
print_r($a);
?>
输出结果为:
Array
(
[a] => A
[b] => B
[c] => C
)
对于数组元素的操作,可以通过下标或者key的方式。
对于数字索引的数组,可以通过下标索引的方式,如:
<?php
$a = array("a", "b", "c");
print_r($a);
$a[0] = "c";
print_r($a);
?>
将元素中的”a”修改为”c”。
对于关联数组,可以通过key操作关联数组的元素,如:
<?php
$a = array("a"=>"A", "b"=>"B", "c"=>"C");
print_r($a);
$a["a"] = "C";
print_r($a);
?>
数组元素的个数可以通过函数count()
来取得,如下:
<?php
$a = array("a"=>"A", "b"=>"B", "c"=>"C");
echo count($a);
?>
可以使用foreach
遍历数组中的元素,如下:
<?php
$a = array("a"=>"A", "b"=>"B", "c"=>"C");
foreach ($a as $q){
echo $q;
echo "\n";
}
?>
此时输出的是value值,若是需要输出key,可以使用如下的方法:
<?php
$a = array("a"=>"A", "b"=>"B", "c"=>"C");
foreach ($a as $key=>$value){
echo $key;
echo "=>";
echo $value;
echo "\n";
}
?>
对于数字索引的数组,可以使用array_push()
函数向数组中添加元素,如下:
<?php
$a = array("a", "b", "c");
print_r($a);
array_push($a, "d");
print_r($a);
?>
对于关联数组,则是直接以key=>value的形式插入:
<?php
$a = array("a"=>"A", "b"=>"B", "c"=>"C");
print_r($a);
if (!array_key_exists("d", $a)){
$a["d"] = "D";
}
print_r($a);
?>
使用array_pop()
方法删除数组中的末尾的元素,如下:
<?php
$a = array("a"=>"A", "b"=>"B", "c"=>"C");
print_r($a);
array_pop($a);
print_r($a);
?>
函数array_pop()
返回的是删除的元素的value值。
使用array_unique()
函数删除数组中的重复的元素。函数的具体形式为:
array array_unique(array_1)
<?php
$a = array("a", "b", "c", "a", "b", "c");
print_r($a);
$result = array_unique($a);
print_r($result);
?>
数组与字符串的相互转换为:
implode()
explode()
如下:
<?php
$str = "a b c d e f";
$arr = explode(" ", $str);
print_r($arr);
$str_1 = implode("\t", $arr);
echo $str_1."\n";
?>