2013-03-13 1 views
1

이 형식으로 배열이 있습니다.어떻게이 형식으로 2 차원 배열을 얻을 수 있습니까?

Date   Employee    Notes 
    2013-03-08  ABC     Notes of ABC on 08-03-2013 
    2013-03-08  PQR     Notes of PQR on 08-03-2013 
    2013-03-08  XYZ     Notes of XYZ on 08-03-2013 
    2013-03-09  ABC     Notes of ABC on 09-03-2013 
    2013-03-09  PQR     Notes of PQR on 09-03-2013 
    2013-03-09  XYZ     Notes of XYZ on 09-03-2013 

그리고 난

Date   Employee    Notes 
2013-03-08  ABC     Notes of ABC on 08-03-2013 
        PQR     Notes of PQR on 08-03-2013 
        XYZ     Notes of XYZ on 08-03-2013 
2013-03-09  ABC     Notes of ABC on 09-03-2013 
        PQR     Notes of PQR on 09-03-2013 
        XYZ     Notes of XYZ on 09-03-2013 

그래서 내가 어떻게 내 PHP 코드를 얻기 위해 쓸 수있는이 형식의 결과 배열이 같은 결과를 원하는? 이것은 2 차원 배열이고 foreach 루프를 사용하여 이렇게 표시했습니다.

아무도 도와 줄 수 있습니까?

+1

처럼 새로운 배열? – Raptor

답변

0

이 작동합니다 :

$entries = array(
    array("Date" => "2013-03-08", "Employee" => "ABC", "Notes" => "Notes of ABC on 08-03-2013"), 
    array("Date" => "2013-03-08", "Employee" => "PQR", "Notes" => "Notes of PQR on 08-03-2013"), 
    array("Date" => "2013-03-08", "Employee" => "XYZ", "Notes" => "Notes of XYZ on 08-03-2013"), 
    array("Date" => "2013-03-09", "Employee" => "ABC", "Notes" => "Notes of ABC on 09-03-2013"), 
    array("Date" => "2013-03-09", "Employee" => "PQR", "Notes" => "Notes of PQR on 09-03-2013"), 
    array("Date" => "2013-03-09", "Employee" => "XYZ", "Notes" => "Notes of XYZ on 09-03-2013") 
); 

$y = array(); 
foreach ($entries as $entry) { 
    $date = $entry["Date"]; 
    if (!isset($y[$date])) $y[$date] = array(); 
    unset($entry["Date"]); 
    $y[$date][] = $entry; 
} 

print_r($y); 
+0

Steven Moseley에게 감사드립니다. 내 문제는 귀하의 솔루션에 의해 해결됩니다. :) – Mausami

+0

안녕 스티븐. 두 가지 매개 변수에 대해 도움을 주시겠습니까? 지금처럼 우리는 날짜만으로 해냈지만, 나는 사건별로 그리고 날짜순으로 그것을하고 싶다. 저를 도와주세요 ? – Mausami

1

당신은 단지 VAR에 현재 날짜를 초기 배열에 반복해야하고, 저장. 다음 날짜가 변경되지 않는 동안 동일한 하위 항목에 하위 데이터를 저장합니다.

당신이 가정

$initial = array(
    array('2013-03-08','ABC','Notes of ABC on 08-03-2013'), 
    array('2013-03-08','PQR','Notes of PQR on 08-03-2013'), 
    array('2013-03-08','XYZ','Notes of XYZ on 08-03-2013'), 
    array('2013-03-09','ABC','Notes of ABC on 09-03-2013'), 
    array('2013-03-09','PQR','Notes of PQR on 09-03-2013'), 
    array('2013-03-09','XYZ','Notes of XYZ on 09-03-2013') 
) 

당신은 할 수 있습니다 당신이 PHP에서하려고 한 일

$final = array(); 
$currentDate = false; 
foreach($initial as $index => $subArray) 
{ 
    if ($currentDate === false || $currentDate != $subArray[0]) 
    { 
     $currentDate = $subArray[0]; 
     $final[$currentDate] = array(); 
    } 

    $final[$currentDate][] = array($subArray[1], $subArray[2]); 
} 
+0

귀하의 도움에 감사드립니다 user1073122. – Mausami

관련 문제