php 操作数组有关问题

php中文网
发布: 2016-06-13 13:29:31
原创
875人浏览过

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'=&gt;1,'2012-05-07'=&gt;1,'2012-05-24'=&gt;2,'2012-05-25'=&gt;2,'2012-05-28'=&gt;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] =&gt; 0
    [2012-05-02] =&gt; 1
    [2012-05-03] =&gt; 0
    [2012-05-04] =&gt; 0
    [2012-05-05] =&gt; 0
    [2012-05-06] =&gt; 0
    [2012-05-07] =&gt; 1
    [2012-05-08] =&gt; 0
    [2012-05-09] =&gt; 0
    [2012-05-10] =&gt; 0
    [2012-05-11] =&gt; 0
    [2012-05-12] =&gt; 0
    [2012-05-13] =&gt; 0
    [2012-05-14] =&gt; 0
    [2012-05-15] =&gt; 0
    [2012-05-16] =&gt; 0
    [2012-05-17] =&gt; 0
    [2012-05-18] =&gt; 0
    [2012-05-19] =&gt; 0
    [2012-05-20] =&gt; 0
    [2012-05-21] =&gt; 0
    [2012-05-22] =&gt; 0
    [2012-05-23] =&gt; 0
    [2012-05-24] =&gt; 2
    [2012-05-25] =&gt; 2
    [2012-05-26] =&gt; 0
    [2012-05-27] =&gt; 0
    [2012-05-28] =&gt; 3
    [2012-05-29] =&gt; 0
    [2012-05-30] =&gt; 0
    [2012-05-31] =&gt; 0
)
[User:root Time:12:16:01 Path:/home/liangdong/php]$ cat date.php 
<?php $html = array('2012-05-02' => 1,'2012-05-07' =&gt; 1,'2012-05-24' =&gt; 2,'2012-05-25' =&gt; 2,'2012-05-28' =&gt; 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);
?&gt; <div class="clear"></div>
登录后复制
PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号