Heim  >  Artikel  >  Backend-Entwicklung  >  php 操作数组有关问题

php 操作数组有关问题

WBOY
WBOYOriginal
2016-06-13 13:29:31700Durchsuche

php 操作数组问题
有数组如下:

PHP code
<!--

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 ) 



想得到如下的结果,
数组个数为当月的天数date('t',time()),如果上面$html中有的,则用上面的数组,没有的则添0

如下、
PHP code
<!--

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 )



谢谢

------解决方案--------------------
PHP code
$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>
PHP code
[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>
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn