php 动态数组,PHP 动态改变某个数组的值,动态通过数组的键获得相对应的值

今天这篇文章,会对 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;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值