{$ histogram {$ value} ++}在Perl中意味着什么?

时间:2010-03-01 05:53:39

标签: php perl hash

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

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

我正在尝试将Perl脚本转换为PHP并且我遇到了困难(我真的不知道Perl的任何内容,但我正在尝试)。

那么如何将此{$histogram{$value}++}放入PHP?

谢谢!

3 个答案:

答案 0 :(得分:11)

{$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;
}

答案 1 :(得分:5)

<?php
  $histogram = array_count_values($array);
?>

答案 2 :(得分:0)

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

它是单行变体:

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