【问题标题】:perl foreach array result from a databaseperl foreach 来自数据库的数组结果
【发布时间】:2015-01-19 14:22:44
【问题描述】:

我有一些来自数据库的select 结果(如图片所示)。

我需要为id 循环使用foreach

一定是这样的

foreach () {
   if ($status==1) {
      if ($process_id ~~ @some_array) {
    #do something
   }
}

每个周期怎么做?据我了解,我需要从哈希形式 $ref = $sth->fetchrow_hashref 的基础中获取结果,但我从未与他合作过,而且我的尝试没有成功。请帮帮我。

【问题讨论】:

  • 到目前为止你有什么代码? $sth->fetchrow 类型的方法可以在 while 循环中调用,以一次获取和处理一个
  • 我可以得到943 1 0 0 形式的数组,但对我来说不是这样。 while($ref = $sth->fetchrow_hashref) { @keys = keys %$ref; @values = values %$ref; } 之类的代码也不适合
  • 哈希查找比使用(实验性的)~~ @array 更好,因为它更快并且不会改变你。 my %some_array = map { $_ => 1 } @some_array;,然后是if ($some_array{$process_id}) { ... }

标签: perl data-structures hash dbi


【解决方案1】:

你需要fetchrow_array吗?

while (my ($id, $status, $process_id, $error_count) = $sth->fetchrow_array) {
    if (1 == $status and grep $_ == $process_id, @some_array) {
        # do something
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-25
    相关资源
    最近更新 更多