gpt4 book ai didi

php - 如何为数据库中的foreach数据添加索引?

转载 作者:行者123 更新时间:2023-11-29 06:02:13 25 4
gpt4 key购买 nike

在下面的代码中,我了解到 foreach $insuranceType_list 正在将数据行分配给 $l$k 有什么用?对于索引?而在任何变量前面的@可以使变量成为全局变量吗?这意味着我可以在整个应用程序的任何位置访问它?

if(@$insuranceType_list){
foreach($insuranceType_list as $k=>$l){
$insuranceType_list[$k]->version_list = $this->mdl_quotation_template->getConditionTemplates('insurance_type_id='.$l->id);
}
}

我也不明白这里发生了什么:

$insuranceType_list[$k]->version_list 

如果有人能解释我会很有帮助。

最佳答案

让我们剖析:

  1. $insuranceType_list 是一个对象数组。我知道这一点是因为您正在使用 $l->something 中的箭头访问值,如果您有一个数组数组,您将像这样访问它 $l['something']
  2. 前面的@ 只是意味着您正在抑制该变量的错误。它通常用于您不希望抛出错误的函数。
  3. 您可以使用没有 $k 的 foreach 进行迭代,例如 foreach($insuranceType_list as $l) 这意味着您不关心索引,您只是想要每次迭代的值。但是,如果您出于任何原因计划使用 key ,那么您将像当前一样使用该 $k 变量。

例子: 假设您有一个这样的数组:

$list = [
[
'name' => 'john'
'age' => 29
],
[
'name' => 'jane'
'age' => 23
]
];

如果您想创建表示“John is 29 years old” 的字符串。然后您将执行以下操作:

foreach($list as $l){
echo "{$l['name']} is {$l['age']} years old";
}

但是,如果您希望字符串显示“John is #1 on the list, and is 29 years old”。然后您将执行以下操作:

foreach($list as $k => $l){
echo "{$l['name']} is #{$k} on the list, and is {$l['age']} years old";
}

综上所述,我将以这种方式缩短您的代码:

if (!empty($insuranceType_list)) {
foreach ($insuranceType_list as $l) {
$l->version_list = $this->mdl_quotation_template->getConditionTemplates('insurance_type_id=' . $l->id);
}
}

关于php - 如何为数据库中的foreach数据添加索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44060668/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com