免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2312 | 回复: 4
打印 上一主题 下一主题

这样的数组如何分割? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-02-06 16:31 |只看该作者 |倒序浏览
数组 : $htmlArray=array
(
    [0] => 2007年2月5日,
    [1] => 今日说法,
    [2] => 凤凰早班车,
    [3] => 有报天天读,
    [4] => 翡翠午间新闻,
    [5] => 2007年2月4日,
    [6] => 新闻联播,
    [7] => 焦点访谈,
    [8] => 东方时空,
    [9] => 今日说法,
    [10] => 讲述,
    [11] => 广东卫视新闻,
    [12] => 时事直通车,
    [13] => 翡翠午间新闻,
    [14] => 翡翠晚间新闻,
    [15] => 2007年2月3日,
    [16] => 新闻联播,
    [17] => 焦点访谈,
    [18] => 东方时空,
    [19] => 今日说法,
    [20] => 讲述,
    [21] => 广东卫视新闻,
    [22] => 时事直通车,
    [23] => 翡翠午间新闻,
    [24] => 翡翠晚间新闻
)
如何按日期项如 $htmlArray[15] => 2007年2月3日,简单说就是每碰到日期就要分割一次,结果是三个数组

论坛徽章:
0
2 [报告]
发表于 2007-02-06 18:21 |只看该作者
简单写了个函数,其实里面还缺少一些细节的判断比如
xxxx2007年2月5日xxxx
这样是否也应该通过等等,不过这要看你的业务和数据情况了.
有了这个函数,剩下的array数据重构应该顺理成章了吧.

  1. function checkdate_CN($datecn){
  2.   list($year,$month, $day) = preg_split('/[年月日]/', $datecn,-1,PREG_SPLIT_NO_EMPTY);
  3.   return checkdate($month, $day, $year);
  4. }
  5. if(checkdate_CN('2007年2月5日')){
  6.   //your code
  7. };
复制代码

论坛徽章:
0
3 [报告]
发表于 2007-02-06 18:21 |只看该作者

  1. $i=0;
  2. $result=array();
  3. foreach($htmlArray as $k=>$v){
  4.     if(preg_match('#(\d{4})年(\d{2})月(\d{2})日#',$v,$d) && checkdate($d[2],$d[3],$d[1])) {
  5.         $i++;
  6.     }
  7.     $result[$i][$k]=$v;//如果不要原来的key可以改为,$result[$i][]=$v;
  8. }
复制代码

没有测试,应该可以的

论坛徽章:
0
4 [报告]
发表于 2007-02-07 09:19 |只看该作者
进来学习学习!!

论坛徽章:
0
5 [报告]
发表于 2007-02-07 13:52 |只看该作者

  1. function SplitDateArray($htmlArray)
  2. {
  3.         $result = array();
  4.         $htmlArray_data = preg_split("/[0-9]+年[0-1]?[0-9]月[0-3]?[0-9]日/", implode(" ", $htmlArray), -1, PREG_SPLIT_NO_EMPTY);
  5.         preg_match_all("/[0-9]+年[0-1]?[0-9]月[0-3]?[0-9]日/", implode(",", $htmlArray), $htmlArray_date);
  6.         $htmlArray_date = $htmlArray_date[0];

  7.         $inx = 0;
  8.         foreach($htmlArray_date as $date)
  9.                 $result[$date] = explode(" ", trim($htmlArray_data[$inx]));
  10.         unset($htmlArray_data); unset($htmlArray_date);
  11.         return $result;
  12. }
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP