我有一个多维数组,如下所示:
Array (
[results] => Array (
[0] => Array (
[object_id] => 13
[id] => 13
[idno] => e00110-o00005-2010-PROG
[display_label] => La Bohème / PUCCINI - 2010
[ca_objects.description] => Libreto de Luigi Illica y Giuseppe Giacosa basado en Escenas de la vida bohemia de Henri Murger Nueva producción – Teatro Colón
[ca_objects.type_id] => Programa de mano
)
//more data here
我正在尝试循环数组并使用 str_replace 将“object_id”键替换为“new_id”。
$str="object_id";//The string to search for
$rep="new_id";//The replacement string
foreach ($array as $value) {
foreach ($value as $key2 => $value2) {
foreach ($value2 as $key3 => $value3) {
str_replace($str,$rep,$key3);
echo $key3." : ".$value3."<br>"; //It gets printed with no changes
}
}
}
上面的代码不起作用,你能看出我做错了什么吗?
我尝试使用字符串而不是变量,但也不起作用。
提前致谢。
...如果你真的想使用str_replace()
:
$array['results'] = array_map(function($item){
$keys = implode(',', array_keys($item));
$keys = str_replace('object_id', 'new_id', $keys);
return array_combine(explode(',', $keys), array_values($item));
}, $array['results']);
另一种方法 - 创建一个新数组,然后迭代旧数组并将其中的值分配给新数组,同时更改所需的键:
$array['results'] = array_map(function($item){
$item['new_id'] = $item['object_id'];
unset($item['object_id']);
return $item;
}, $array['results']);
(如果重要的话,这将重新排序数组)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)