2017-11-09 8 views
0

配列を別のタスクに分割したいと思います。例えば配列を特定の値に分割する方法

$employee = [ 
    "1010" => "110", 
    "1011" => "110", 
    "1015" => "110", 
    "1017" => "120", 
    "1018" => "120", 
    "1020" => "150", 
    "1050" => "150", 
    "1052" => "150", 
    "1055" => "150" 
]; 

keyemployee_idあり、valuetaskです。 今、私はこの配列を反復するとseperatlyので、などのタスクを示しますたいと思います:

**TASK 110** 
    1010 110 
    1011 110 
    1015 110 
**TASK 120** 
    1017 120 
    1018 120 
**TASK 150** 
    1020 150 
    1050 150 
    1052 150 
    1055 150 

これを達成するための最良の方法は何ですか:

foreach($employee as $empl => $task) 
{ 
    echo $empl . " " . $task . "<br>"; 

} 

これは私のすべてのEMPLOYEE_IDおよびタスクを表示。 私は関数array_chunkを使用しようとしましたが、これは静的なサイズにしか分割しないため動作しませんでした。

答えて

2

を変更した場合、配列は、以前に注文されていない場合は、ヘッダーをエコー、

foreach($employee as $empl => $task) { 
    $temp[$task][] = $empl; 
} 

foreach($temp as $task=> $list) { 
     echo "**TASK $task**<br>"; 
     foreach($list as $empl) { 
     echo $empl . " " . $task . "<br>"; 
     } 
} 

1つの以上のループを使用することができますdemo

0

あなたは、ヘッダーのレコードを追加し、すべての行にそれを比較し、

$record = ''; 
foreach($employee as $empl => $task) 
{ 
    if ($taks !== $record) { 
     echo "**TASK " . $task . "**<br>"; 
     $record = $taks; 
    } 
    echo $empl . " " . $task . "<br>"; 

} 
関連する問題