2010-03-01 3 views
5

제목에 코드에 대한 전체 서브 루틴은 다음과 같습니다

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

(난 정말 펄의 아무것도 몰라 내가 PHP로 펄 스크립트를 번역하기 위해 노력하고있어 나는 그 어려움에 봉착하지만, 노력하고있어).

어떻게하면 {$histogram{$value}++}을 PHP에 넣을 수 있습니까?

감사합니다.

답변

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

고맙습니다. konforce! – Alex

11

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

PHP는 이것을 수행하는 고유 한 기능을 가지고 있습니다 : http://www.php.net/array_count_values ​​ – Matthew

+1

@Konforce : 좋은 지적. 하지만 나는 OP와 비슷한 구조를 사용하여 그의 기능이 PHP로 어떻게 변환 될 수 있는지 알려주고있었습니다. – codaddict

+0

고마워, 얘들 아! – Alex

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

때문이다 단 한 줄의 변형 :

foreach my $value (@_) { 
    $histogram{$value}++ 
} 
관련 문제