通过&修改数组中的值

下面就直接放出代码,针对使用递归删除数组中的值,存在空数组时,可以过滤空数组,具体实现可以参考以前写的文章,这篇主要介绍’&'处理数组

<?php

$arrTest = array(
    'A' => [
        'An' => 'anan',
        'Bn' => 'bnbn',
    ],
    'C' => [
        'Cn' => 'cncn',
        'Dn' => 'dndn',
    ],
);

/**
 * 修改数组中的值
 * @param $arrToChange array 需要处理的数组
 * @return array 返回处理后的数组
 */
function toChangeValue($arrToChange)
{
    //使用'&'引用每次遍历过后的值,这样修改的就是原数组的值
    foreach ($arrToChange as &$value) {
        foreach ($value as &$each) {
            if ($each == 'anan') {
                $each = 'enen';
            }
        }
    }

    return $arrToChange;
}


/**
 * 通过递归和'&'删除数组中不符合要求的值
 * @param $arrToDelete array 需要处理的数组
 * @return array 返回处理后的数组
 */
function toDeleteValue(&$arrToDelete)
{
    foreach ($arrToDelete as $key => $value) {
        if (is_array($value)) {
            //将递归过后的数组地址传值给原数组, 这样才能删除掉原数组中的值,而不是删除复制数组中的值
            $arrToDelete[$key] = toDeleteValue($value);
        } elseif ($value == 'anan') {
            unset($arrToDelete[$key]);
        }
    }

    return $arrToDelete;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值