我是PHP的新手。我创建了一个数组$ store
$store = array(
'storeId'=> $shoe->storeId,
'store'=> $shoe->store,
'showAll'=> false,
'shoes'=> new \stdClass
);
我试图在鞋子上添加一个鞋子$鞋子'。我这样做了
$store["shoes"]= $shoe;// This successfully adds $shoe object into $store
但是我无法向其添加新对象。我想要一个像这样的结果。
$store = array(
'storeId'=> $shoe->storeId,
'store'=> $shoe->store,
'showAll'=> false,
'shoes'=> {{$shoe1}, {$shoe2}...}
);
修改
foreach($product->shoes as $shoe) {
$store = searchForId($shoe->storeId, $stores);// returns True if key present
if($store === null){
$store = array(
'storeId'=> $shoe->storeId,
'store'=> $shoe->store,
'showAll'=> false,
'shoes'=> []
);
$store['shoes'][] = json_decode(json_encode($shoe), true);
array_push($stores, $store);
}
else{
$store['shoes'][] = json_decode(json_encode($shoe), true);
}
}
答案 0 :(得分:1)
声明你的数组:
$store = array(
'storeId'=> $shoe->storeId,
'store'=> $shoe->store,
'showAll'=> false,
'shoes'=> [],
);
现在$store['shoes']
是数组而不是 stdObject 。
这意味着您可以像这样添加$store['shoes']
:
$store['shoes'][] = $shoe;
编辑:您的变量当前是stdClass对象。我建议将其转换为数组,因为其余数据存储为数组。您可以像下面这样轻松完成:
$store['shoes'][] = json_decode(json_encode($shoe), true);
这可以通过将对象编码为json字符串,然后将其解码为数组来实现。
您可以详细了解json_encode()
here和json_decode()
here。