1.关联数组,数组覆盖
$a = array(1,2,"a","3", 1=>"test");
echo $a[3] . "<br>";
echo $a[1] . "<br>"; //后加入的关联数组元素 1=>"test" 会覆盖前面的值。
$a["3"] = "ok2"; // 合法的整数字符串会转化成整数 即:3 和 “3” 是相同的下标
echo $a[3]."<br>";
echo count($a);
$a[0.1] = "浮点数会被转换为整数 即0.1下标和 0 相同";
$a[null] = “null会被转换为“”“
true是1, false则会被存储为0下标数据。
输出结果:
3
test
ok2
4
2.key 可以是 integer 或者 string。value 可以是任意类型。
3.删除元素
unset($arr[0]) 删除第0个元素,也可以将整个数组删除 unset($arr)
$arr = array(1,2,3,4);
unset($arr[0]);
echo ($arr[0]); //$arr[0]被删除,这是输出为空
echo($arr[1] . "<br>"); //可以看到虽然第一个元素被删除了,各元素的位置还是保持的。
$newarr = array_values($arr); //array_values函数将返回参数的所有的值并给其建立数字索引。相当于删除掉了已经被unset的元素。
echo $newarr[0];
4.数组大小
count函数,sizeof函数均可。
5.只写方括号不写键名的划,默认会访问最大的键值
例如 $a[] = 1;$a[]=2 这样每次会将值存到最后一个键值 即$a[0] = 1 $a[1] = 2
如果echo $a[] 由于这个值是最大元素的后一个,即还没有被创建,所以什么都不会输出。
6.foreach专门用于数组遍历
foreach ($arr as $var)
{
echo $b . "<br>";
}
foreach ($arr as $key => $value)
{
$arr[$key] = $value + 1;
}
7.array_diff($a1, $a2)将返回一个数组,$a1中有的数据,$a2中没有的数据。
$a1 = array(1,2,3,4);
$a2 = array(a,b,c,4);
$a3 = array_diff($a1, $a2); //$a3的值为 1,2,3
var_dump($a3);
8.sort对数组进行排序。
9.array_push可以在末尾追加一个值
array_push($a1, 6); //等价于 $a1[] = 6;
array(“ab”=>”first”, “bc”=>”second”, “third”) //第三个是第一个没有键值的,则下标为0
10.引用
define("data", "hello");
$a = array(1,2,3,data);
$b = &$a; //跟C语言中引用类似
$b[0] = 2; //$a[0] 也被修改为2
11.数组相加 左边的数组会覆盖右边的内容
$a = array("a",2,3);
$b = array("hello", "by", 2, 4);
$c = $a + $b; //左边的值直接覆盖右边的 结果 ("a",2,3, 4);
12. === !==
== 代表值相等
=== 值相等的基础上,类型必须相等
$a = array(0=>"a", 1=>"b");
$b = array(1=>"b", 0=>"a");
$c = array("a", "b");
$a == $b TRUE,
$a === $b FALSE;
$a === $c TRUE;
13.数组的访问
自 PHP 5.4 起可以用数组间接引用函数或方法调用的结果。之前只能通过一个临时变量。
自 PHP 5.5 起可以用数组间接引用一个数组原型。
<?php
function getArray() {
return array(1, 2, 3);
}
// on PHP 5.4
$secondElement = getArray()[1];
// previously
$tmp = getArray();
$secondElement = $tmp[1];
// or
list(, $secondElement) = getArray();
$a = array(1,2,"a","3", 1=>"test");
echo $a[3] . "<br>";
echo $a[1] . "<br>"; //后加入的关联数组元素 1=>"test" 会覆盖前面的值。
$a["3"] = "ok2"; // 合法的整数字符串会转化成整数 即:3 和 “3” 是相同的下标
echo $a[3]."<br>";
echo count($a);
$a[0.1] = "浮点数会被转换为整数 即0.1下标和 0 相同";
$a[null] = “null会被转换为“”“
true是1, false则会被存储为0下标数据。
输出结果:
3
test
ok2
4
2.key 可以是 integer 或者 string。value 可以是任意类型。
3.删除元素
unset($arr[0]) 删除第0个元素,也可以将整个数组删除 unset($arr)
$arr = array(1,2,3,4);
unset($arr[0]);
echo ($arr[0]); //$arr[0]被删除,这是输出为空
echo($arr[1] . "<br>"); //可以看到虽然第一个元素被删除了,各元素的位置还是保持的。
$newarr = array_values($arr); //array_values函数将返回参数的所有的值并给其建立数字索引。相当于删除掉了已经被unset的元素。
echo $newarr[0];
4.数组大小
count函数,sizeof函数均可。
5.只写方括号不写键名的划,默认会访问最大的键值
例如 $a[] = 1;$a[]=2 这样每次会将值存到最后一个键值 即$a[0] = 1 $a[1] = 2
如果echo $a[] 由于这个值是最大元素的后一个,即还没有被创建,所以什么都不会输出。
6.foreach专门用于数组遍历
foreach ($arr as $var)
{
echo $b . "<br>";
}
foreach ($arr as $key => $value)
{
$arr[$key] = $value + 1;
}
7.array_diff($a1, $a2)将返回一个数组,$a1中有的数据,$a2中没有的数据。
$a1 = array(1,2,3,4);
$a2 = array(a,b,c,4);
$a3 = array_diff($a1, $a2); //$a3的值为 1,2,3
var_dump($a3);
8.sort对数组进行排序。
9.array_push可以在末尾追加一个值
array_push($a1, 6); //等价于 $a1[] = 6;
array(“ab”=>”first”, “bc”=>”second”, “third”) //第三个是第一个没有键值的,则下标为0
10.引用
define("data", "hello");
$a = array(1,2,3,data);
$b = &$a; //跟C语言中引用类似
$b[0] = 2; //$a[0] 也被修改为2
11.数组相加 左边的数组会覆盖右边的内容
$a = array("a",2,3);
$b = array("hello", "by", 2, 4);
$c = $a + $b; //左边的值直接覆盖右边的 结果 ("a",2,3, 4);
12. === !==
== 代表值相等
=== 值相等的基础上,类型必须相等
$a = array(0=>"a", 1=>"b");
$b = array(1=>"b", 0=>"a");
$c = array("a", "b");
$a == $b TRUE,
$a === $b FALSE;
$a === $c TRUE;
13.数组的访问
自 PHP 5.4 起可以用数组间接引用函数或方法调用的结果。之前只能通过一个临时变量。
自 PHP 5.5 起可以用数组间接引用一个数组原型。
<?php
function getArray() {
return array(1, 2, 3);
}
// on PHP 5.4
$secondElement = getArray()[1];
// previously
$tmp = getArray();
$secondElement = $tmp[1];
// or
list(, $secondElement) = getArray();
?>
<完>