2017-11-28 8 views
-4

配列にCSVタイルをインポートします。 CSVファイルは、次のようなものです:PHP:情報数をカウントする

私は何をしたいのか
Company1, Workstation, PC1 
Company1, Workstation, PC2 
Company1, Server, Server1 
Company2, Workstation, PC1 
Company2, Server, Server1 

、Company1のはCompany1のが持っているどのように多くのサーバー、持っているどのように多くのワークステーション数える、というようにCompany2のためのものです。

私は結果のようないろいろ書いになりたい:私はarray_count_valuesを見て持っていたが、それは仕事を得るように見えるカントXX

: Company1の(名前のvarible): コンピュータ:xxxの サーバー、もし助けがあれば、私は感謝します。

+3

あなたが何かをしようとしましたか?コードを書くことはあなたを殺しません.. –

答えて

-1

$array['Company1']['Workstation'] ++ 
$array['Company1']['Server'] ++ 

のような会社を持つ配列と思い、次

count($array['Company1']['Workstation']); 

最も簡単な方法を確認します。

0

私はあなたがこのような何かをしようとしていると思う:

// Sample input data 
$arrayFromCsv = [ 
    ['Company1', 'Workstation', 'PC1'], 
    ['Company1', 'Workstation', 'PC2'], 
    ['Company1', 'Server', 'Server1'], 
    ['Company2', 'Workstation', 'PC1'], 
    ['Company2', 'Server', 'Server1'], 
]; 

// Data transformation 
$inventory = []; 
foreach ($arrayFromCsv as $row) { 
    if (!isset($inventory[$row[0]])) { 
     $inventory[$row[0]] = []; 
    } 

    if (!isset($inventory[$row[0]][$row[1]])) { 
     $inventory[$row[0]][$row[1]] = 0; 
    } 

    $inventory[$row[0]][$row[1]]++; 
} 

// To get workstation count for Company1: 
$company = 'Company1'; 
$type = 'Workstation'; 

if (isset($inventory[$company][$type])) { 
    echo "$company has {$inventory[$company][$type]} $type(s)";  
} 
0

あなたは第一、第二のループに表示し、その後、グループにそれらが必要になります。

コード:(Demo

$array=[ 
    ['Company1', 'Workstation', 'PC1'], 
    ['Company1', 'Workstation', 'PC2'], 
    ['Company1', 'Server', 'Server1'], 
    ['Company2', 'Workstation', 'PC1'], 
    ['Company2', 'Server', 'Server1'] 
]; 

// group the occurrences in a 2-level array 
foreach($array as $row){ 
    if(!isset($group[$row[0]][$row[1]])){ 
     $group[$row[0]][$row[1]]=1; 
    }else{ 
     ++$group[$row[0]][$row[1]]; 
    } 
} 
// display results 
foreach($group as $company=>$subarray){ 
    echo "\n$company:"; 
    foreach($subarray as $key=>$num){ 
     echo " $key: $num"; 
    } 
} 

出力:

Company1: Workstation: 2 Server: 1 
Company2: Workstation: 1 Server: 1