PHP – Заменить данные в многомерном массиве, конкретный ключ

Я переучиваю 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.

Большое спасибо.

Лучший способ доступа к ключам и значениям массива – это цикл 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

 foreach($array as &$value) { $value['ad_type'] = 'new value'; }