2011-10-28 1 views
-1

私のようなものプリントアウトする配列$arrayありますPHPで配列をフォーマットする方法は?

:私はこのようなカウントを取得することができます

NAME  2011-10-26  2011-10-27 
Terry  2    0 
Travis 1    1 

:私はこのようなテーブルにデータを配置しようとしています

Array 
(
[Terry] => Array 
    (
     [2011-10-26] => Array 
      (
       [0] => 69.90 
       [1] => 69.90 
      ) 

    ) 

[Travis] => Array 
    (
     [2011-10-26] => Array 
      (
       [0] => 199.50 
      ) 

     [2011-10-27] => Array 
      (
       [0] => 199.50 
      ) 

    ) 
) 

foreach($array as $key => $value){ 
    echo $key; // this will give me the names 
    foreach($value as $keys => $values){ 
     echo $keys; //this will give me the dates 
     echo count($values); // this will give me the count per date 
    } 
} 

戻ってくる日付は次のとおりです。2011-10-26 2011-10-26 2011-10-27

私はこれをしばらくプレイしていて、アイデアが足りなくなっています。

助けてくださいか?

おかげ

+0

は、あなただけの日付フォーマットで、または、テーブルを作成する方法については不明でありますか?編集:だから問題は、日付が1つの大きな文字列として返されているということですか? –

答えて

2
// build a list of all of the available dates 
$dates = array(); 
foreach($array as $key => $value){ 
    $dates = array_merge($value, $dates); 
} 

$dates = array_keys($dates); 

// You may want to sort the date columns here somehow 
echo "Names\t".implode("\t",$dates)."\n"; 
foreach($array as $key => $value){ 
    echo $key; 
    foreach($dates as $d){ 
     echo "\t".(array_key_exists($d, $value) ? count($value[$d]) : 0); 
    } 
    echo "\n"; 
} 
+0

ありがとう、これはそれをした – Patrioticcow

0
$result = array(); 
$days = array(); 

foreach ($array as $person => &$dates) 
    $days = array_merge(array_keys($dates), $days); 

$days = array_unique($days); 
sort($days); // Sort days. 

foreach ($array as $person => &$dates) { 
    foreach ($days as &$day) 
     // You can also use array_key_exists instead of '@' to suppress the notice. 
     $result[$day][$person] = @count($dates[$day]); 
} 

var_dump($result); 

結果:

array(2) { 
    ["2011-10-26"]=> 
    array(2) { 
    ["Terry"]=> 
    int(2) 
    ["Travis"]=> 
    int(1) 
    } 
    ["2011-10-27"]=> 
    array(2) { 
    ["Terry"]=> 
    int(0) 
    ["Travis"]=> 
    int(1) 
    } 
} 
関連する問題