2011-07-13 157 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