我不得不对我的应用程序做一些改变,以配合我的数据库中的关系变化。
原来我有下面的1::0-1关系
if ($model->address->AddressLine1) echo $model->address->AddressLine1.'<br />';
if ($model->address->AddressLine2) echo $model->address->AddressLine2.'<br />';
if ($model->address->city->Name) echo $model->address->city->Name;
if ($model->address->city->regionCode->RegionCode) echo ', '.$model->address->city->regionCode->RegionCode;
,但必须更改它以使用1::0-n关系
foreach ($model->address as $al1)
foreach ($model->address as $al2)
foreach ($model->address as $al2)
foreach ($model->address as $city)
foreach ($model->address as $region) {
echo $al1->AddressLine1.' '.$al2->AddressLine2.'<br/>'.$city->city->Name.' '.$city->city->regionCode->RegionCode;
}
我想在原始代码中保留if
的功能。在原始代码中,我可以使用
', '.
if ($model->address->city->regionCode->RegionCode) echo
', '. $model->address->city->regionCode->RegionCode;
仅当数据库中存在Region时,在City后添加逗号。
那么我怎么能得到那回来,并利用if
在我的数组?
您只需要一个foreach
循环-您只是迭代单个数组。
您可以将条件粘贴到foreach
循环中,更新变量名。这里假设$model->address
是一个数组。在每次迭代中,$address
将被设置为该数组的后续元素。
foreach ( $model->address as $address ) {
if ($address->AddressLine1) echo $address->AddressLine1.'<br />';
if ($address->AddressLine2) echo $address->AddressLine2.'<br />';
if ($address->city->Name) echo $address->city->Name;
if ($address->city->regionCode->RegionCode) echo ', '.$address->city->regionCode->RegionCode;
}
查看更多信息:
- PHP
foreach
文档foreach
教程