搜索

首页  >  问答  >  正文

php - 关于不使用循环去改变二位数组中每个小数组指定的值

比方说,我有一个二维数组:

$a = [
    '0' => [
        'a' => '11',
        'b' => '22',
        'c' => '33'
    ],
    '1' => [
        'a' => '44',
        'b' => '55',
        'c' => '66'
    ],
    ...
];

这样的数组,在不使用循环的前提下,我要改变所有'b'的值为'99',请问如何实现?

想了半天,没有思路。

ringa_leeringa_lee2728 天前835

全部回复(6)我来回复

  • PHPz

    PHPz2017-05-27 17:45:55

    没有,而且没有意义。
    不管怎么样,你总得变相循环才能去实现遍历。

    回复
    0
  • phpcn_u1582

    phpcn_u15822017-05-27 17:45:55

    雷雷

    回复
    0
  • 淡淡烟草味

    淡淡烟草味2017-05-27 17:45:55

    换别的方式,即使你不需要循环,那么那种方式肯定也用了循环

    所以换汤不换药

    回复
    0
  • PHPz

    PHPz2017-05-27 17:45:55

    楼上的顺序弄乱了,应该 array_map(function,$arr);
    其实楼上说得都没错,内置函数都系需要遍历整个数组,你的问题应该如何使用内置函数实现

    $a=array_map(function($val){
        $val['b']='99';
        return $val;
    },$a);

    回复
    0
  • 伊谢尔伦

    伊谢尔伦2017-05-27 17:45:55

    无聊,大的方向不去把握,纠结于细枝末节。所以我也无聊一把吧,haha

        $arr = [
            '0' => [
                'a' => '11',
                'b' => '22',
                'c' => '33'
            ],
            '1' => [
                'a' => '44',
                'b' => '55',
                'c' => '66'
            ]
        ];
        
        $arr   = json_encode($arr);
        
        $match = preg_replace('/"b":"(.+?)"/', '"b":"99"', $arr);
        
        var_dump(json_decode($match, true));

    回复
    0
  • 天蓬老师

    天蓬老师2017-05-27 17:45:55

    转字符串 + 正则匹配替换 ?

    回复
    0
  • 取消回复