搜尋

首頁  >  問答  >  主體

php - 關於不使用循環去改變二位數組中每個小數組指定的值

比方說,我有一個二維數組:

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

這樣的數組,在不使用循環的前提下,我要改變所有'b'的值為'99',請問如何實現?

想了半天,沒有思路。

ringa_leeringa_lee2728 天前833

全部回覆(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
  • 取消回覆