2010-04-15 3 views
1

키 날짜와 값으로 소비되는 대역폭의 양을 가진 배열의 데이터 구조를 결정하려고합니다.PHP에서 비 균일하게 구조화 된 배열을 만들고 채우려면 어떻게해야합니까?

Key  Consumed   Policy    
October 50     Basic 
November 75     Basic 
December 100    Basic 

몇 개월,하지만 모두가 하나 개 이상의 정책이있을 것이다. 이 경우 전체가 표시되면 정책에 따라 분류해야합니다. 위의 예에서 12 월에는 3 가지 정책이 있다고 가정합니다. 배열에서 구성한 표는 다음과 같이 표시해야합니다.

Key  Consumed   Policy    
October 50     Basic 
November 75     Basic 
December 100    .. 
December 25     Basic 
December 25     Extended 
December 50     Premium 

이 모든 데이터를 배열로 표시 할 수 있습니까?

$ myArray [ 'december']는 마지막 항목, 아마도 다른 배열이 필요하며 정책 이름을 키로 사용하고 데이터의 양을 값으로 사용하기 때문에 다른 데이터 구조가됩니다. PHP는 구조가 균일하지 않은 배열을 허용합니까? 즉 10 월 및 11 월 키는 키 아래에 2 개의 항목 만 있고 12 월에는 2 개의 항목이 있으며 3 번째 항목은 추가 배열입니다. 이 가능하며 방법을 선언하고 PHP로 값을 채울 경우

Array (
    [October] => "50", "Basic" 
    [November] => "75", "Basic" 
    [December] => "100", "..", Array([Basic] => 25 
             [Extended] =>25 
             [Premium] => 50 
                ) 
     ) 

내 질문은 :

내 추측이 같은입니다. 모든 설명이나 도움에 미리 감사드립니다!

답변

2

데이터 구조를 간단하고 이해하기 쉽도록 유지하십시오. 복잡한 작업을 할 때 걱정됩니다.

는 같은 구조를 고려하십시오

<?PHP 
$usageData = array(
    'December' => array(
    'policy' => array(
     'Basic'=>50, 
     'Extended'=>25, 
     'Premium'=>25 
    ) 
), 
    'January' => array(
    'policy'=> array(
     'Basic'=>50 
    ) 
) 
); 

지금, 보고서를 생성 할를, 그래서 ... 당신은 당신의 문제의 예제로 사용하는 보고서를 생성합니다

<?PHP 
function report($usage){ 
    foreach($usage as $month=>$data){ 
    if (count($data) > 1){ 
     echo "{$month}\t..\t" . array_sum($data). "\n"; 
    } 
    foreach($data as $policy=>$usage){ 
     echo "{$month}\t{$policy}\t{$usage}\n"; 
    } 
    } 
} 

.

+0

답변 해 주셔서 감사합니다. – stormist

관련 문제