Целая подпрограмма для кода в заголовке:
sub histogram { # Counts of elements in an array
my %histogram = () ;
foreach my $value (@_) {$histogram{$value}++}
return (%histogram) ;
}
Я пытаюсь перевести сценарий Perl в PHP, и я испытываю трудности с ним (я действительно не знаю ничего Perl, но я пробую).
Таким образом, как я помещаю это {$histogram{$value}++}
в PHP?
Спасибо!
{$ 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;
}
foreach my $value (@_) {$histogram{$value}++}
Это однострочный вариант:
foreach my $value (@_) {
$histogram{$value}++
}