PHP - 替换多维数组中的数据,特定键

Dam*_*amo 5 php arrays multidimensional-array

我正在重新学习PHP,对不起,这可能是一个基本问题.我找不到答案.

我有一个多维数组,我需要用另一个值替换特定键(所有实例)的值.

Array ( 
    [13] => Array ( 
                [ad_id] => 13 
                [ad_name] => Qhxxst 
                [ad_link] => www.qxxst.co.uk 
                [ad_type] => 1 
            ) 
    [15] => Array ( 
                [ad_id] => 15 
                [ad_name] => Pxxly 
                [ad_link] => http://pixxly.net 
                [ad_type] => 1 
            ) 
    [16] => Array ( 
                [ad_id] => 16 
                [ad_name] => cxxm 
                [ad_link] => http://www.cxxm.co.uk 
                [ad_type] => 1 
            ) 
)
Run Code Online (Sandbox Code Playgroud)

我希望将ad_type的所有实例替换为其他值.即,当ad_type = 1时,替换为x,其中ad_type = 2,替换为y

我一直在使用str_replace和json_decode而没有成功.它们要么替换所有'1'实例,要么根本不替换.我只需要定位ad_type键.

非常感谢.

ale*_*lex 7

foreach($array as &$value) {
    $value['ad_type'] = 'new value';
}
Run Code Online (Sandbox Code Playgroud)


Mav*_*ick 6

使用foreach循环访问数组的键和值的最佳方法.

就像是:

$array= Array ( [13] => Array ( [ad_id] => 13 [ad_name] => Qhxxst [ad_link] => www.qxxst.co.uk [ad_type] => 1 ) [15] => Array ( [ad_id] => 15 [ad_name] => Pxxly [ad_link] => http://pixxly.net [ad_type] => 1 ) [16] => Array ( [ad_id] => 16 [ad_name] => cxxm [ad_link] => http://www.cxxm.co.uk [ad_type] => 1 ) );

foreach ($array as $key=>$val) 
{
    if ($key=="ad_type" && $val==1) 
    {
        $val="x";
    }
    elseif ($key=="ad_type" && $val==2) 
    {
        $val="y";
    }
}
Run Code Online (Sandbox Code Playgroud)

有关进一步参考http://php.net/manual/en/control-structures.foreach.php