数组php中的索引,日期格式

时间:2013-01-22 03:55:47

标签: php arrays date format

对不起我的英语,我不知道我的问题是否正确。

我有一个数组:

Array
(
    [0] => Array
    (

        [date] => 2013-01-22
        [id] => 1
        [views] => 33286

    )

   [1] => Array
    (

        [date] => 2013-01-23
        [id] => 1
        [views] => 33223

    )


[2] => Array
    (

        [date] => 2013-01-22
        [id] => 2
        [views] => 33223

    )

 [3] => Array
    (

        [date] => 2013-01-23
        [id] => 2
        [views] => 33223

    )
)

如你所见,id 1& 2有2天的视图:22-01-2013和23-01-2013,所以我的问题是如何打印它们:

id     22-01-2013    23-01-2013
1        33286         33223
2        33223         33223

感谢您的帮助!

2 个答案:

答案 0 :(得分:2)

我怀疑你的最终目标是写出一个价值表。但如果是的话,这里有一些代码可以做到。

<?php

$a = array(
    array('date'=>'2013-01-22', 'id'=>1, 'views'=>33286),
    array('date'=>'2013-01-23', 'id'=>1, 'views'=>33223),
    array('date'=>'2013-01-22', 'id'=>2, 'views'=>33223),
    array('date'=>'2013-01-23', 'id'=>2, 'views'=>33223),
);

$table = array();
$cols = array();
foreach ($a as $item)
{
   $date = date('d-m-Y', strtotime($item['date']));
   $table[$item['id']][$date] = $item['views'];
   $cols[$date] = 1;
}
$cols = array_keys($cols);

header('Content-type: text/plain');
echo("id\t" . implode("\t", $cols) . "\r");
foreach ($table as $rowName=>$row)
{
   echo("$rowName\t");
   foreach ($cols as $colName)
   {
      echo(@$row[$colName] . "\t");
   }
   echo("\r");
}

P.S。您知道,Stack Overflow并不是我们为您编写代码的地方。我只是想写代码: - )

P.P.S。对于真正的PHP专家,我很想知道应该对这段代码进行哪些优化: - )

答案 1 :(得分:0)

See the manual关于格式化日期。

foreach ($yourarray as $key => $value){
    $yourarray[$key]['date'] = date("d-m-Y",strtotime($value['date']));
}

我原以为你不介意覆盖其他格式。