【问题标题】:What does {$histogram{$value}++} mean in Perl?Perl 中的 {$histogram{$value}++} 是什么意思?
【发布时间】:2010-03-01 23:40:49
【问题描述】:

标题中代码的整个子程序是:

sub histogram { # Counts of elements in an array
  my %histogram = () ;
  foreach my $value (@_) {$histogram{$value}++}
  return (%histogram) ;
}

我正在尝试将 Perl 脚本翻译成 PHP,但我遇到了困难(我真的对 Perl 一无所知,但我正在尝试)。

那么我该如何将这个{$histogram{$value}++} 放入PHP 中呢?

谢谢!

【问题讨论】:

    标签: php perl hash


    【解决方案1】:

    {$histogram{$value}++} 定义了一个块,在 Perl 中,块的最后一行不需要终止分号,所以它等价于{$histogram{$value}++;}

    现在 PHP 中的 hash 等价物是一个关联数组,我们使用 [] 来访问该数组中的元素:

    $hash{$key} = $value;      // Perl
    $ass_array[$key] = $value; // PHP
    

    PHP 中的等效函数类似于:

    function histogram($array) {
        $histogram = array();
        foreach($array as $value) {
            $histogram[$value]++;   
        }
        return $histogram;
    }
    

    【讨论】:

    • @Konforce:好点。但我只是让 OP 知道如何使用类似的结构将他的函数转换为 PHP。
    【解决方案2】:
    <?php
      $histogram = array_count_values($array);
    ?>
    

    【讨论】:

      【解决方案3】:
      foreach my $value (@_) {$histogram{$value}++}
      

      它是以下的单行变体:

      foreach my $value (@_) {
          $histogram{$value}++
      }
      

      【讨论】:

        猜你喜欢
        • 2022-11-25
        • 2018-03-05
        • 2010-12-28
        • 1970-01-01
        • 1970-01-01
        • 2023-03-25
        • 2020-05-21
        • 1970-01-01
        • 2011-03-06
        相关资源
        最近更新 更多