php - 关于不使用循环去改变二位数组中每个小数组指定的值
ringa_lee
ringa_lee 2017-05-27 17:43:55
[PHP讨论组]

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

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

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

想了半天,没有思路。

ringa_lee
ringa_lee

ringa_lee

全部回复(6)
PHPz

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

phpcn_u1582
$a=array_map($a,function($val){
    $val['b']=99;
    return $val;
})
淡淡烟草味

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

所以换汤不换药

PHPz

樓上的順序弄亂了,應該 array_map(function,$arr);
其實樓上說得都沒錯,內置函數都系需要遍歷整個數組,你的問題應該如何使用內置函數實現

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

无聊,大的方向不去把握,纠结于细枝末节。所以我也无聊一把吧,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));
天蓬老师

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号