【发布时间】:2017-10-14 03:00:56
【问题描述】:
我有一个数组数组。他们都是订阅研讨会的人。在表的末尾添加了一些追加销售产品。问题是:有时有人订购了 2 个人,而属于一个交易而不是一个人的加售产品在两个人的后面加入。因此,如果我注册 2 个人并购买 2 件衬衫,则列表两次显示 2 件衬衫。
所以我想:让我们循环一下,看看我是否找到了一些追加销售,然后用一个简单的双精度 foreach 删除每一秒出现的情况。但是$first 的值始终保持true。如果我在声明下方回显它是false。我多次重复了这些值,并在代码中添加了 cmets 中的值。
foreach($results as $key => $result){
if(!empty($result["upsell"])){
$tid = $result["id"];
$first = true;
foreach($results as $result2){
if($result2["id"] == $tid){
// ALWAYS TRUE
if(!$first){
$results[$key]["upsell"] = "";
}
$first = false;
// FALSE
}
}
}
}
这里发生了一些奇怪的范围事情吗?在我看来,它应该首先循环并为真,然后再循环并为假。
编辑,添加了print_r 的结果。
Array
(
[28] => Array
(
[id] => 1475
[transaction_id] => SAME
[club] => xxxxxxxx
[event] => Voetbalmiddag
[category] => Scoutingdagen
[date_from] => 2017-05-31
[date_end] => 2017-05-31
[first_name] => xxxxxx
[last_name] => xxxxxx
[birth_date] => xxxxxxx
[email] => xxxx@hotmail.com
[address] => xxxxx
[zipcode] => 8xxxxx
[city] => xxxxxx
[phone] => xxxxxx
[soccer_club] => xxxxxxx
[soccer_team] => MP JO7-2
[position] => field
[printed] => 0
[print_name] =>
[print_number] =>
[shirt_size] =>
[sock_size] =>
[pants_size] =>
[referral] => Via de sportvereniging
[comments] =>
[status] => paid
[upsell] => 2 Shirt
)
[29] => Array
(
[id] => 1476
[transaction_id] => SAME
[club] => xxxxxxx
[event] => Voetbalmiddag
[category] => Scoutingdagen
[date_from] => 2017-05-31
[date_end] => 2017-05-31
[first_name] => xxxx
[last_name] => xxxxxxx
[birth_date] => xxxxxxx
[email] => xxxxx@hotmail.com
[address] => Ixxxxx
[zipcode] => xxxxx
[city] => xxxxxx
[phone] => xxxxx
[soccer_club] => xxxxx
[soccer_team] => MP JO9-9
[position] => keeper
[printed] => 0
[print_name] =>
[print_number] =>
[shirt_size] =>
[sock_size] =>
[pants_size] =>
[referral] => Via de sportvereniging
[comments] =>
[status] => paid
[upsell] => 2 Shirt
)
[50] => Array
(
[id] => 1468
[transaction_id] => xxxxxxx
[club] => xxxxxxxxxxx
[event] => Voetbalmiddag
[category] => Scoutingdagen
[date_from] => 2017-05-31
[date_end] => 2017-05-31
[first_name] => xxxxx
[last_name] => xxxxx
[birth_date] => xxxxx
[email] => x@gmail.com
[address] => xxxx 35
[zipcode] => xxxx
[city] => xxxxx
[phone] => xxxxx
[soccer_club] => xxxx
[soccer_team] => jo11-5
[position] => field
[printed] => 0
[print_name] =>
[print_number] =>
[shirt_size] =>
[sock_size] =>
[pants_size] =>
[referral] => Via de flyer
[comments] =>
[status] => open
[upsell] => 1 Shirt
)
)
【问题讨论】:
-
$results的结构是什么
-
!$first 为真,$first 为假。有什么问题?
-
@KrisRoofe 我希望 $first 在第二次 foreach 的第二次迭代中为 false,但不知何故,它每次都以
$first = true重新启动,而在第一次迭代时它设置为 false。 -
@RST 是一个带有关联数组的数组。
-
查看演示eval.in/795450