今天这篇文章,会对 PHP 常用数组函数再做一次筛选,这篇文章中介绍的数组函数,是我认为使用频率最高的几个函数。
另外,今天着重说一下如何动态改变某个数组的值或者如何通过数组的键获得相对应的值。
array_merge
将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面。返回值为一个数组
array array_merge ( array $array1 [, array $... ] )
array_replace
使用传递的数组替换第一个数组的元素
array array_replace ( array $array1 , array $array2 [, array $... ] )
第一个参数$array1:替换该数组的值。
第二个参数 $array2:从此数组中提取替换值。
array_search
在数组中搜索给定的值,如果成功则返回首个相应的键名,如果找到了 needle 则返回它的键,否则返回 FALSE。
mixed array_search ( mixed $needle , array $haystack [, bool $strict = false ] )
共 3 个参数,其中第三个参数不常使用。
第一个参数 $needle:搜索的值。如果 needle 是字符串,则比较以区分大小写的方式进行。
第二个参数 $haystack:在该数组中查找。
第三个参数 $start:如果可选的第三个参数 strict 为 TRUE,则 array_search() 将在 haystack 中检查是否有类型及值都和needle 一样的元素。(之前提到的三个等于号和两个等于号的区别)
count(sizeof)
计算数组中的单元数目,或对象中的属性个数
int count ( mixed $array_or_countable [, int $mode = COUNT_NORMAL ] )
共 2 个参数,其中第二个参数基本不用。
第一个参数 $array_or_countable:传入数组或者对象。
第二个参数基本不用,这里不介绍了,想了解的朋友可以到 PHP 官网查询(cn2.php.net/count)
in_array
检查数组中是否存在某个值
bool in_array ( mixed $needle , array $haystack [, bool $strict = FALSE ] )
共 3 个参数,其中第三个参数不常使用。
第一个参数 $needle:搜索的值。如果 needle 是字符串,则比较以区分大小写的方式进行。
第二个参数 $haystack:在该数组中查找。
第三个参数 $strict:如果第三个参数 strict 的值为 TRUE 则 in_array() 函数还会检查 needle 的类型是否和 haystack 中的相同。(之前提到的三个等于号和两个等于号的区别)
“动态改变某个数组的值” 和 “动态通过数组的键获得相对应的值” 是数组最重要的用法,对于我下面写的两个例子,一定要看懂,如果无法理解的话,建议请教身边已入行的 phper
========================================================如何动态改变某个数组的值========================================================
//目的:动态将第二层数组的第二个值改为3
$arr = array('one'=>array(1,2,3),'two'=>array('a','b','c'));
$i = 1;//定义 $i 的目的,是用于判断当前循环到了第几层
foreach($arr as $key=>$row1){
if($i==2){
$j = 1;
foreach ($row1 as $k2=>$val){// $arr 是个二维数组,当前循环的是第二层数组
if($j==2){//如果是第二层数组的第二个值,我们就将这个值改为:3
$arr[$key][$k2] = 3;//当循环到第二个值的时候,将当前数组的第二个值改为3(这里如果使用 $row[$k2]=3 进行赋值,那么只是对数组进行了临时改变,并没有真正改变数组的值 )
}
++$j;
}
}
++$i;
}
========================================================如何通过数组的键获得相对应的值========================================================
//目的:动态获取第二层数组的第二个值
$arr = array('one'=>array(1,2,3),'two'=>array('a','b','c'));
$i = 1;//定义 $i 的目的,是用于判断当前循环到了第几层
foreach($arr as $key=>$row1){
if($i==2){
$j = 1;
foreach ($row1 as $k2=>$val){// $arr 是个二维数组,当前循环的是第二层数组
if($j==2){//如果是第二层数组的第二个值,我们就将这个值输出
echo $val;//输出值为:3
}
++$j;
}
}
++$i;
}