PHP foreach array


PHP foreach array

我不得不对我的应用程序做一些改变,以配合我的数据库中的关系变化。

原来我有下面的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教程