php - Laravel list() with each() function error with deprecated function
问题描述
我对如何替换 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();
}
解决方案
您没有使用键,因此只需获取当前值,然后移至下一个值:
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();
}
推荐阅读
- c - 返回指向不带参数的结构的指针
- javascript - VueJS子组件不呈现数据
- sql - 在 SQL Server 中创建表查询
- php - 在 curl 请求中传递 url 给出 404 Not Found
- java - 为什么在读取 .csv 文件时出现 ArrayIndexOutOfBoundsException?
- firebase - 如何将 Firebase 与抽象类分开
- c++ - Windows 中未建立 TCP 连接 - C++
- javascript - INPUT_GET 和 INPUT_POST 之间的区别
- mongodb - 是否有用于迭代相似数据块的 MongoDB 模式?
- amazon-web-services - VPC 的 IPv4 CIDR 块与推荐的 CIDR 块大小之间的冲突