php 操作数组问题
有数组如下:
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --> //以下是打印出的结果 $html = array('2012-05-02'=>1,'2012-05-07'=>1,'2012-05-24'=>2,'2012-05-25'=>2,'2012-05-28'=>3); print_r($html); //Array ( [2012-05-02] => 1 [2012-05-07] => 1 [2012-05-24] => 2 [2012-05-25] => 2 [2012-05-28] => 3 )
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --> Array ( [2012-05-01]=>0 [2012-05-02] => 1 [2012-05-03]=>0 [2012-05-04]=>0 ... [2012-05-07] => 1 ... [2012-05-24] => 2 [2012-05-25] => 2 [2012-05-28] => 3 )
$html = array('2012-05-02'=>1,'2012-05-07'=>1,'2012-05-24'=>2,'2012-05-25'=>2,'2012-05-28'=>3); $ar_tmp = range(1, date('t')); $ar = array(); foreach($ar_tmp as $v) $ar[date('Y-m-').str_pad($v, 2, '0', STR_PAD_LEFT)] = 0; print_r(array_merge($ar, $html)); <br><font color="#e78608">------解决方案--------------------</font><br>
[User:root Time:12:16:00 Path:/home/liangdong/php]$ php date.php Array ( [2012-05-01] => 0 [2012-05-02] => 1 [2012-05-03] => 0 [2012-05-04] => 0 [2012-05-05] => 0 [2012-05-06] => 0 [2012-05-07] => 1 [2012-05-08] => 0 [2012-05-09] => 0 [2012-05-10] => 0 [2012-05-11] => 0 [2012-05-12] => 0 [2012-05-13] => 0 [2012-05-14] => 0 [2012-05-15] => 0 [2012-05-16] => 0 [2012-05-17] => 0 [2012-05-18] => 0 [2012-05-19] => 0 [2012-05-20] => 0 [2012-05-21] => 0 [2012-05-22] => 0 [2012-05-23] => 0 [2012-05-24] => 2 [2012-05-25] => 2 [2012-05-26] => 0 [2012-05-27] => 0 [2012-05-28] => 3 [2012-05-29] => 0 [2012-05-30] => 0 [2012-05-31] => 0 ) [User:root Time:12:16:01 Path:/home/liangdong/php]$ cat date.php <?php $html = array('2012-05-02' => 1,'2012-05-07' => 1,'2012-05-24' => 2,'2012-05-25' => 2,'2012-05-28' => 3); date_default_timezone_set('PRC'); $mday = array_map( function($input) { return str_pad($input, 2, "0", STR_PAD_LEFT); }, range(1, date('t'))); $prefix = date('Y-m-'); foreach ($mday as $day) { $date = $prefix . $day; if (!array_key_exists($date, $html)) { $html[$date] = 0; } } ksort($html, SORT_REGULAR); print_r($html); ?> <div class="clear"> </div>