php
的数组
简单的理解一下php
中数组的使用,跟其它语言差不多,增删改查、排序等操作都有,只是使用方式稍有不同,大体逻辑是一样的。
数组的声明
在 PHP
中,有三种类型的数组,分别是数值数组、关联数组、多维数组。下面代码展示如何声明一个php
数组。
<?php
$array1 = array();//声明一个空数组
$cars = array("Volvo","BMW","Toyota");//数值数组
echo count($cars);//count()返回数组的长度
$age = array("Peter"=>"35","Ben"=>"37","Joe"=>"43");//关联数组
//其中包含多个键值对
echo "Peter is ".$age['Peter']." years old.";
//关联数组的遍历方法
foreach($age as $x=>$x_value)
{
echo "Key=".$x.", Value=".$x_value."<br>";
}
//多维数组
// 创建第一个数组
$one = array(
'a' => 'aaa',
'b' => 'bbb',
'c' => 'ccc'
);
// 创建第二个数组
$two = array (
'a' => 'a2',
'b' => 'b2',
'c' => 'c2',
);
// 创建第三个数组
$three = array (
'a' => '123',
'b' => '234',
'c' => '345',
);
// 结合成三维数组
$all = array(
'one' => $one,
'two' => $two,
'three' => $three
);
//多维数组的遍历方法
foreach ($all as $key => $val) {
echo "<h2>$key</h2><ul>";
foreach ($all as $k => $v) {
echo "<li>$k - $v</li>\n";
}
echo '</ul>';
}
?>
数组的操作
//数组的合并
$array1 =array('a','b','c');
$array2 = array('a1'=>'php','a2'=>'python','a3'=>'java');
$array3 = array_merge($array1,$array2);
增加数组元素的函数
array_push
函数向第一个参数的数组尾部添加一个或多个元素(入栈),然后返回新数组的长度。
//续上面的代码
array_push($array1,'d','e');
print_r($array1);
添加到指定位置
<?php
$array1 = array('a', 'b', 'c', 'd', 'e');
$array2 = array('x');
array_splice($array1, 3, 0, $array2); // 插入到位置3并且删除0个
print_r($array1);
?>
使用unset
销毁指定的元素
$array1 = array('a', 'b', 'c', 'd', 'e');
unset($array1[0]);
print_r($array1);
$array1 = array('a', 'b', 'c', 'd', 'e');
$array1[0]='aa';//直接使用数组下标修改对应的元素
print_r($array1);
使用array_splice
函数,函数array_splice(数组,位置,删除数量,增加元素)
<?php
$array1 = array('a', 'b', 'c', 'd', 'e');
$array2 = array('x');
array_splice($array1, 3, 1);
print_r($array1);
?>
也就是数组的查找,参考链接: php数组查找的几种方法
数组常用的函数
is_array
判断是否为数组count
数组的元素数目array_search
在数组中搜索给定的值,如果成功则返回相应的键名array_key_exists
在给定的 key 存在于数组中时返回TRUE
array_unshift
将传入的单元插入到array
数组的开头。注意单元是作为整体被插入的,因此传入单元将保持同样的顺序。所有的数值键名将修改为从零开始重新计数,所有的文字键名保持不变array_shift
将array
的第一个单元移出并作为结果返回,将array
的长度减一并将所有其它单元向前移动一位。所有的数字键名将改为从零开始计数,文字键名将不变。array_unique
接受array
作为输入并返回没有重复值的新数组。注意键名保留不变。array_unique
先将值作为字符串排序,然后对每个值只保留第一个遇到的键名,接着忽略所有后面的键名。这并不意味着在未排序的array
中同一个值的第一个出现的键名会被保留。in_array
检查数组中是否存在某个值 如果找到指定的值则返回TRUE
,否则返回FALSE
。in_array
是区分大小写的。