如何解决在foreach php上更改对象的值
我有一个与此相同的数组:
$object = new stdClass();
$object->name = "test";
$object->age = "24";
$object1 = new stdClass();
$object1->name = "test1";
$object1->age = "25";
$array = array("23" => $object,"24" => $object1);
$array2 = [
"23" => ["name" => "John Nathan"],"24" => ["name" => "test 25"]
];
foreach ($array as $key => $item){
if(isset($array2[$key])){
$item->name = $array2[$key]['name'];
}
}
var_dump($array);
我不明白为什么数组显示如下:
array(
'name' => 'test 25','age' => '24'
)
array(
'name' => 'test 25','age' => '25'
)
我希望它会像这样显示:
array(
'name' => 'John Nathan','age' => '25'
)
请告诉我如何使其按预期工作。 谢谢
解决方法
<?php $object = new stdClass();
$object->name = "test";
$object->age = "24";
$object1 = new stdClass();
$object1->name = "test1";
$object1->age = "25";
$array = array("23" => $object,"24" => $object1);
$array2 = [
"23" => ["name" => "John Nathan"],"24" => ["name" => "test 25"]
];
foreach ($array as $key => $item) {
foreach ($array2 as $key2 => $item2) {
if ($key == $key2) {
$item->name = $item2["name"];
}
}
}
print_r($array);
?>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。