Laravel list()具有不推荐使用的函数的each()函数错误

问题描述 投票:0回答:1

由于不推荐使用each()函数,我对此有些困惑,因为我已经意识到这一点,并在项目中修复了某些while( list() = each() )错误的情况。但是,在这种情况下,我还应该使用其他什么选项:

foreach($new_id as $new_ids) {
    list($key,$valueAddress) = each($address);
    list($key,$valueCity) = each($city);
    list($key,$valueState) = each($state);
    if(isset($_POST['publicOnly'])) {
        list($key,$valuePublicOnly) = each($publicOnly);
    } else {
        $valuePublicOnly = 0;
    }

    $propertyAddress = PropertyAddressManagement::find($new_ids);
        $propertyAddress->address = $valueAddress;
        $propertyAddress->city = $valueCity;
        $propertyAddress->state = $valueState;
        $propertyAddress->publicOnly = $valuePublicOnly;
    $propertyAddress->save();
}
php laravel-4
1个回答
0
投票

您不使用键,所以只需获取当前值,然后移至下一个:

foreach($new_id as $new_ids) {
    $propertyAddress = PropertyAddressManagement::find($new_ids);
        $propertyAddress->address = current($address);
        $propertyAddress->city = current($city);
        $propertyAddress->state = current($state);
        $propertyAddress->publicOnly = isset($_POST['publicOnly']) ? current($publicOnly) : 0;
    $propertyAddress->save();

    next($address); next($city); next($state); next($publicOnly);
}

但是,如果键在所有数组中都相同,那么我认为这确实应该起作用:

foreach($new_id as $key => $new_ids) {
    $propertyAddress = PropertyAddressManagement::find($new_ids);
        $propertyAddress->address = $address[$key];
        $propertyAddress->city = $city[$key];
        $propertyAddress->state = $state[$key];
        $propertyAddress->publicOnly = isset($_POST['publicOnly']) ? $publicOnly[$key] : 0;
    $propertyAddress->save();

    next($address); next($city); next($state); next($publicOnly);
}
© www.soinside.com 2019 - 2024. All rights reserved.