2012-04-16 5 views
1

가 나는 일이 싶은 게의 논리적 구조 나 아이디어를 가지고 내가 그것을 배열을 사용하여 PHP로 코딩 할 싶어, 여기에 시나리오의 :PHP 다차원 배열

10 루프/월의 발생

개월 => 반복 i가 10 회 발생하는 루프가 상기 루프의 횟수 내에서 도시 된 바와 같이

jan => 2 
mar => 1 
sep => 5 
dec => 2 

s의 4 개월이 기록되었으며, 매월 특정 달마다 그 달 (sep)이 여러 번 반복 된 기회가 5 번 반복되었습니다. 이 아이디어는 예를 들어 그가 여행 한 달이 무엇인지, 그리고 기록 된 여행 10 건 중 그 달에 몇 번이나 여행했는지에 대한 기록과 같습니다. 어떤 아이디어를 PHP를 사용하여 이것을 어떻게 구축 할 것인가? 어떤 제안이나 답변도 크게 환영합니다!

좋아, 내가 원하는 일은 진짜 일이야. 나는 데이터베이스에서 몇 달 동안의 기록을 가져온 다음 데이터베이스에서 가져온 달을 표시하고 몇 번 반복했는지 표시하고 싶다. 다음과 같습니다 :

Jan (2) 
Sep (5) 

동적 인 경우 데이터베이스 레코드에 존재하지 않는 특정 월은 표시되지 않습니다.

+0

위의 질문을 편집합니다. 출력은 위와 같아야합니다. –

답변

3

그는 기초적인 주파수 분석을 수행하려고합니다. 배열에 어떻게 든 먹은 날짜가 있다고 가정하면 strtotime(), 날짜() 함수를 사용하여 키를 생성 한 다음 구문 분석 할 수 있습니다. (... "M")

// dummy data; unsure of the format, so going with time()-like structure 
$dates = array(); 
for($i = 0; $i < 10; $i++) { 
    $dates[] = strtotime(sprintf("%s-%s-2012", rand(1,30), rand(1,12))); 
} 

지금 주파수 카운트를 수행, 월별로 키가 날짜별로 기록 :

첫째, 일부 더미 데이터를 생성이 시점에서

$freq = array(); 
foreach($dates as $timestamp) { 
    // assuming it's all the same year, discover the month 
    $month = date("M", $timestamp); 

    if(!isset($freq[$month])) $freq[$month] = 0; 
    $freq[$month]++; 
} 

,

print_r($freq); 

Array 
(
    [Sep] => 2 
    [Feb] => 2 
    [Nov] => 1 
    [Dec] => 1 
    [Jan] => 2 
    [Apr] => 1 
    [May] => 1 
) 

일년이 지났 으면이 방법을 이중 연결해야 할 수 있습니다. 그렇지 않으면.

+0

신난다, 그 것이다! 감사! –