我有JSON响应,看起来像这样
(
[0] => stdClass Object
(
[default] => false
[loc] => http://somethingirrelevant.lol
[temp] => '100'
)
)
我要完成的内容会将[LOC]
中的网址更改为https
我尝试使用:
$array = preg_replace('http','https' $array);
但是这完全破坏了数组!
答案 0 :(得分:1)
你有一个对象的数组。数组键0
是一个具有loc
属性的对象,您可以在此处使用str_replace()
:
$array[0]->loc = str_replace('http://', 'https://', $array[0]->loc);
//$array[0]->loc = preg_replace('#http://#', 'https://', $array[0]->loc);
如果您以数组形式解码:
$array = json_decode($json, true);
然后:
$array[0]['loc'] = str_replace('http://', 'https://', $array[0]['loc']);
答案 1 :(得分:0)
你不能简单地调用数组,你可以做的就是迭代它并用键loc
替换每个值:
foreach($array AS $key=>$value) {
if(isset($value['LOC'])) {
$array[$key]['LOC'] = preg_replace('http','https', $array);
}
}
您可以将数组转换为常规数组而不是对象:
if(!is_array($array)) $array = (array)array;