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

PHP - Replace data within multidimensional array, specific key

提问人:Damo 提问时间:4/24/2011 最后编辑:MachavityDamo 更新时间:10/25/2019 访问量:26033

问:

我正在重新学习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

我一直在使用,但没有成功。它们要么替换“1”的所有实例,要么根本不替换任何实例。我只需要定位ad_type键。str_replacejson_decode

PHP 多维数组

评论


答:

14赞 alex 4/24/2011 #1
foreach($array as &$value) {
    $value['ad_type'] = 'new value';
}

评论

1赞 Damo 4/24/2011
谢谢。使用您的示例可以对其进行排序。'code' foreach($qresult as &$value) { $value['ad_type'] = str_replace (“1”,“Interstatial”,$value['ad_type']); $value['ad_type'] = str_replace (“2”,“Top Frame”,$value['ad_type']); }
5赞 Maverick 4/24/2011 #2

访问数组的键和值的最佳方法是使用 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赞 apokryfos 6/19/2019
这个答案显然是行不通的。如果你要走这条路,你需要一个双循环。看看 sandbox.onlinephpfunctions.com/code/...
0赞 Parth Kinjal Shah 4/12/2020
此方法不适用于任何多维数组。“”“foreach ($arrayName as &$value) { $value['ValueName'] = str_replace($value['ValueName'],encryptText($value['ValueName']),$value['ValueName']); }”“” 对我有用