我正在重新学习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
)
)
我希望将ad_type的所有实例替换为另一个值。 即 如果ad_type = 1,请替换为x 如果ad_type = 2,则替换为y
我一直在使用str_replace和json_decode而没有成功。它们要么替换所有'1'实例,要么根本不替换。我只需要定位ad_type键。
非常感谢。
答案 0 :(得分: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";
}
}
进一步参考http://php.net/manual/en/control-structures.foreach.php
答案 1 :(得分:5)
foreach($array as &$value) {
$value['ad_type'] = 'new value';
}