foreach 相关问题

foreach是一个循环结构,它为列表/集合/数组中的每个元素执行给定的代码片段。与for循环相比,foreach循环不需要编码器维护计数器变量以避免一对一(fencepost)错误。建议在需要对整个数组/列表/集合进行简单迭代时使用。

如何检索foreach内的变量

如何在 foreach 之外访问 $sum_max_run_time ? 我已经尝试过这样的操作,但它只返回数据的第一个值而不是所有数据。 foreach($apijob_all 作为$value2){ $sum_job_...

回答 1 投票 0

“对象?”类型的值无法分配给“Map<dynamic, dynamic>?”类型的变量

“对象?”类型的值无法分配给“Map?”类型的变量。 尝试更改变量的类型,或将右侧类型转换为“Map” “对象?”类型的值无法分配给“Map?”类型的变量。 尝试更改变量的类型,或者将右侧类型转换为“Map?”。我想将firebase数据库中的点转换为x点来制作折线图。 void fetchDataFromFirebase() { final databaseReference = FirebaseDatabase.instance .ref('1TJ5Srs0JsEvXaiehwPgCkJ8Ywqsoj5ERRCVcCFhGoDA/swh'); databaseReference.once().then((DatabaseEvent databaseEvent) { if (databaseEvent.snapshot.value != null) { Map<dynamic, dynamic>? values = databaseEvent.snapshot.value; List<DataPoint> newDataPoints = []; values.forEach((key, value) { if (value['Num'] != null && value['Swh'] != null) { int? num = value['Num'] as int?; double? swh = value['Swh'] as double?; if (num != null && swh != null && num >= 1 && num <= 10) { newDataPoints.add(DataPoint(num.toDouble(), swh)); } } }); setState(() { dataPoints.clear(); dataPoints.addAll(newDataPoints); }); } }); } 那么如何使其成为可能呢?在此之前我这样做但仍然出现“foreach”错误 void fetchDataFromFirebase() { final databaseReference = FirebaseDatabase.instance .ref('1TJ5Srs0JsEvXaiehwPgCkJ8Ywqsoj5ERRCVcCFhGoDA/swh'); databaseReference.once().then((DataSnapshot dataSnapshot) { if (dataSnapshot.value != null) { List<DataPoint> newDataPoints = []; dataSnapshot.value!.forEach((key, value) { if (value['Num'] != null && value['Swh'] != null) { int? num = value['Num'] as int?; double? swh = value['Swh'] as double?; if (num != null && swh != null && num >= 1 && num <= 10) { newDataPoints.add(DataPoint(num.toDouble(), swh)); } } }); setState(() { dataPoints.clear(); dataPoints.addAll(newDataPoints); }); } }); } 您可以通过强制转换为 Map<dynamic,dynamic>? 来避免此问题 void fetchDataFromFirebase() { final databaseReference = FirebaseDatabase.instance .ref('1TJ5Srs0JsEvXaiehwPgCkJ8Ywqsoj5ERRCVcCFhGoDA/swh'); databaseReference.once().then((DatabaseEvent databaseEvent) { if (databaseEvent.snapshot.value != null) { Map<dynamic, dynamic>? values = databaseEvent.snapshot.value as Map<dynamic, dynamic>?; // Explicit cast if (values != null) { // you shpuld check is it null or not null List<DataPoint> newDataPoints = []; values.forEach((key, value) { if (value['Num'] != null && value['Swh'] != null) { int? num = value['Num'] as int?; double? swh = value['Swh'] as double?; if (num != null && swh != null && num >= 1 && num <= 10) { newDataPoints.add(DataPoint(num.toDouble(), swh)); } } }); setState(() { dataPoints.clear(); dataPoints.addAll(newDataPoints); }); } } }); }

回答 1 投票 0

限制 foreach 和 doParallel 中的迭代

我正在尝试使用 foreach 和 doParallel 实现嵌套 for 循环,但我不想循环所有值的组合。基本上,我有一个方形数据集,我想运行一个函数...

回答 1 投票 0

如何在 Ballerina 中迭代嵌套和可选记录数组?

在我的 Ballerina 程序中,我有以下嵌套记录结构,并且我想迭代分配记录的关联配置文件中的配置文件数组。 这是 m...

回答 1 投票 0

正确合并两个不同的数据集

我真的需要一些帮助。无论我采取什么方法,我似乎都无法做到这一点。让我进行设置,以便您首先了解该任务。 首先我们有一个名为 $play...

回答 1 投票 0

如果上次迭代满足条件,则重新启动 foreach 循环

当到达最后一个索引和其他条件时,如何重新启动 foreach 循环? 循环需要再次运行,相反,它只是停止。 foreach ($getUsers as $index => $user) { $用户ID =

回答 3 投票 0

手动创建的 JSON 字符串无效

我创建了一个手动循环来形成一个json,供我正在启动的项目上的另一个API使用,请在下面找到。 问题是 API 无法识别我的 json 输出。我检查了r...

回答 1 投票 0

如何在foreach循环中增加一个数字?

我想从数据库中获取一些数据并以HTML表格的形式显示。 我希望表格的第一列显示行数,例如 1,2,3,4... 这是我的 foreach 循环 $i=0; 为...

回答 5 投票 0

Tcl 的 foreach 不设置变量

我正在重新定义 Tcl 的 set 命令以允许同时进行多个分配。但是,一旦我尝试使用变量,它就会报告“未定义变量”错误。这是我尝试过的两种方法...

回答 1 投票 0

隐藏/取消隐藏非相邻列的功能

我想创建一个函数来隐藏/取消隐藏非相邻列 我已经尝试过该代码(我从论坛复制/粘贴),但由于我不明白“隐藏=>”是什么,例如,我...

回答 1 投票 0

从特定子数组中提取数据[重复]

我在这里度过了一个高级时刻 我有以下数组,我正在尝试从“[0]”中获取数据 大批 ( [ID] => 103088 [键] => field_65002d05c4f14 ...更多元素 [值] =>

回答 1 投票 0

从数组中提取数据

我在这里度过了一个高级时刻 我有以下数组,我正在尝试从“[0]”中获取数据 数组 ( [ID] => 103088 [key] => field_65002d05c4f14 [label] => 下载文件 [name] =&...

回答 1 投票 0

SwiftUI + ForEach 在使用新维度重绘矩阵时遇到“索引超出范围”

我使用 SwiftUI 的 ForEach 从视图模型中的矩阵中绘制一个网格,该矩阵包含相同数量的行和列。我希望能够点击一个按钮并切换到一个带有

回答 1 投票 0

Foreach 非常慢 C#

我有一个foreach,在这个foreach中我遍历一个列表,在这个foreach中我有一个条件来检查另一个有20万行的列表中是否有某些信息是字符串...

回答 1 投票 0

同步迭代并打印两个大小相同的数组中的值

我想使用两个数组生成一个选择框,一个包含国家/地区代码,另一个包含国家/地区名称。 这是一个例子: $codes = ['tn', 'us', 'fr']; $names = ['突尼斯', '联合国...

回答 25 投票 0

在第二个循环中重用第一个循环中的引用变量会损坏我的数组数据

我有一个从 MySQL 获得的数据集,如下所示: 大批 ( [0] => 数组 ( [观看次数] => 14 [时间戳] => 06/04 [views_scaled] => 4.929577464788...

回答 6 投票 0

在 PowerShell ForEach-Object 循环中,是否可以每 1000 个条目将内容转储到日志文件?

如果我使用 PowerShell ForEach-Object 语句并将内容存储在变量中,是否可以每 1000 个条目将这些内容转储到日志文件中? 我问只是因为我正在处理...

回答 1 投票 0

Laravel Cron 使用 For 循环

我正在使用 Laravel cron,每 1 分钟运行一次。我在文件中使用循环向每个用户发送消息。有时它会向用户发送多条消息。我想知道什么是最好的...

回答 1 投票 0

使用 ForEach 循环查找列表中的最后一个元素

我正在尝试查找与 User 关联的最新订单,我必须使用 forEach 循环反向迭代才能找到最新订单。 这是我的代码: 公共可选 我正在尝试查找与 User 关联的最新订单,我必须使用 forEach 循环反向迭代才能找到最新订单。 这是我的代码: public Optional<Order> lastOrderFrom(User user, List<Order> orderList) { Optional<Order> result = orderList .stream() .filter(order -> order.getUser().equals(user)) .collect(Collectors.toCollection(result::new)) .forEach(i -> System.out.println(user)); return result; } 您可以使用 ListIterator 进行反向迭代: for (ListIterator<Order> iter = orderList.listIterator(orderList.size()); iter.hasPrevious(); ) { Order order = iter.previous(); if (order.getUser().equals(user)) { return Optional.of(order); } } return Optional.empty();

回答 1 投票 0

使用 foreach 迭代结果集对象与在 while 循环中调用 mysqli_fetch_assoc() 有什么区别?

我有点进退两难,在 PHP 中,foreach 循环和 while 循环在这种情况下似乎做了完全相同的事情: foreach ($execute->结果为$item) { 回显 $item['user_pass'] 。 ' 我有点进退两难,在 PHP 中,foreach 循环和 while 循环在这种情况下似乎做了完全相同的事情: foreach ($execute->result as $item) { echo $item['user_pass'] . '<br />'; } 并且 while ($row = mysqli_fetch_assoc($execute->result)) { echo $row['user_pass'] . '<br />'; } 我的问题是有什么真正的区别吗? 什么时候使用其中一种更好,或者两者都使用可以? 这两者中的任何一个会给您带来更大的灵活性吗? 在这种情况下它们是完全等价的。 mysqli_result 实现了 Traversable 接口(如此处所述: http://www.php.net/mysqli_result ),因此也可以使用 foreach 循环进行迭代。 我认为,在内部,在 foreach 对象上调用 mysqli_result 也会执行对 mysqli_fetch_assoc 的调用。 我认为使用第一种方法或第二种方法没有什么区别;然而,第一个看起来更漂亮,对我来说“更多 PHP5”! 说到灵活性,第一个当然也更灵活,因为您可以将该代码与任何实现 Traversable 的对象一起使用,而不仅仅是 mysqli_result。 对于从数据库获取结果,我确实更喜欢 while 方法,因为如果获取返回 false,则其主体不会执行,而 foreach 主体将失败,您需要检查 false,因为访问false 的按键会崩溃。 来自:https://www.php.net/manual/en/mysqli-result.fetch-assoc.php 返回表示所获取行的关联数组,其中数组中的每个键表示结果集的某一列的名称,如果结果集中没有更多行,则返回 null,如果失败则返回 false。 $fetch = false; foreach($fetch as $row) { echo $row['title']; } 警告:foreach() 参数必须是 array|object 类型,在第 5 行 /in/8gGsR 中给出 false 否则需要一段时间 $fetch = false; while($row = $fetch) { echo $row['title']; } 我们想要的什么都没有发生,因为条件是 false。如果没有更多结果,则返回 null,这也会导致条件为 false。 这也适用于所有 PDO 获取方法。 我发现了这个: for 与 foreach 与 while 在 php 中迭代数组哪个更快 答案表明速度差异非常小,以至于你使用哪个几乎不重要。 我喜欢使用 foreach 循环来迭代返回的信息,因为我可以访问键和值,这根据需要的用途可以很方便。 $returned = array(array("userName" => "Tim"),array("userName" => "Bob"), array("userName" => "Guy")); foreach($returned as $L1) { foreach($L1 as $L2 => $val) { if($L2 === "userName") { echo 'Hello: ' . $val . "<br />"; } } } 我想这取决于您需要什么值、您需要多少控制以及您需要它的位置。

回答 3 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.