2011-07-13 111 views
0

我不得不做出一些改变,我的应用程序在我的分贝的关系变化工作。PHP的foreach阵列

我原本什么低于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;

仅仅只有当一个地区是存在于数据库中添加市后一个逗号。

所以,我怎么能找回来,并利用我的阵列中if

回答

3

你只需要一个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; 
} 

欲了解更多信息:

+0

这看起来像什么我之后。这适用于每个项目一个地址,因此我将为每个项目添加多个地址并查看它是否完全符合账单。谢谢您的帮助。 – enfield

+0

按预期工作。再次感谢您的帮助。 – enfield