Что означает {$ histogram {$ value} ++} в Perl? - PullRequest
5 голосов
/ 01 марта 2010

Вся подпрограмма для кода в заголовке:

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

Я пытаюсь перевести скрипт Perl на PHP, и у меня возникают трудности с ним (я действительно ничего не знаю о Perl, но я пытаюсь).

Итак, как мне поместить это {$histogram{$value}++} в PHP?

Спасибо!

Ответы [ 3 ]

11 голосов
/ 01 марта 2010

{$histogram{$value}++} определяет блок, а в Perl последняя строка блока не нуждается в завершающей точке с запятой, поэтому она эквивалентна {$histogram{$value}++;}.

Теперь эквивалентом хеша в PHP является ассоциативный массив, и мы используем [] для доступа к элементам в этом массиве:

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

Эквивалентная функция в PHP будет выглядеть примерно так:

function histogram($array) {
    $histogram = array();
    foreach($array as $value) {
        $histogram[$value]++;   
    }
    return $histogram;
}
5 голосов
/ 01 марта 2010
<?php
  $histogram = array_count_values($array);
?>
0 голосов
/ 01 марта 2010
foreach my $value (@_) {$histogram{$value}++}

Это однострочный вариант:

foreach my $value (@_) {
    $histogram{$value}++
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...