a[0][i]  -- 12.2
a[1][i]  -- 内容

解决方案 »

  1.   

    $str = "12.2
    内容
    1.4
    内容2
    内容内容
    3.4
    内容拉拉拉";
    $arr = explode("\r\n", $str);
    $i = 0;
    foreach ($arr as $key => $val) {
      if(is_numeric(substr($val, 0, 1))) {
        $i++;
        $result[$i]["date"] = $val;
      } else {
        if(is_numeric(substr($arr[$key-1], 0, 1))) {
          $result[$i]["content"] = $val;
        } else {
          $result[$i]["content"] .= "\r\n" . $val;
        }
      }
    }
    echo "<xmp>";
    print_r($result);
      

  2.   

    刚才那个有点小问题:)$str = "12.2
    内容
    1.4
    内容2
    内容内容
    3.4
    内容拉拉拉";
    $arr = explode("\r\n", $str);
    $i = 0;
    foreach ($arr as $key => $val) {
      if(is_numeric(substr($val, 0, 1))) {
        $i++;
        $result[$i-1]["date"] = $val;
      } else {
        if(is_numeric(substr($arr[$key-1], 0, 1))) {
          $result[$i-1]["content"] = $val;
        } else {
          $result[$i-1]["content"] .= "\r\n" . $val;
        }
      }
    }
    echo "<xmp>";
    print_r($result);
      

  3.   

    $count=count($str);
    $ii=0;
    if( $ii<$count ){
    $date=$str[$ii];
    $i=$ii+1;
    while(!is_int(substr($str[$i],1))) {
    $diary_content.=$str[$i];
    $i++;
    }
    $query = "INSERT INTO diary VALUES ('','$date','$diary_content','')";
    mysql_query($query,$dbh);
    $ii=$i;
    unset($diary_content);
    }
    这样为什么不行?
      

  4.   

    上面那段代码不行吗??我试过可以的呀??你这个代码为什么不行是因为,放到数组后就成了字符型了,所以要用is_numeric.$str = "12.2
    内容
    1.4
    内容2
    内容内容
    3.4
    内容拉拉拉
    内容2
    内容内容
    内容2
    内容内容
    1.4
    内容2
    内容内容
    3.4
    内容拉拉拉
    1.4
    内容2
    内容内容
    3.4
    内容拉拉拉
    内容2
    内容内容
    内容2
    内容内容";
    $arr = explode("\r\n", $str);
    $i = 0;
    foreach ($arr as $key => $val) {
      if(is_numeric(substr($val, 0, 1))) {
        $i++;
        $result[$i-1]["date"] = $val;
      } else {
        if(is_numeric(substr($arr[$key-1], 0, 1))) {
          $result[$i-1]["content"] = $val;
        } else {
          $result[$i-1]["content"] .= "\r\n" . $val;
        }
      }
    }
    echo "<xmp>";
    print_r($result);
      

  5.   

    我把is_int换成is_numeric就可以了。我看你的那个数组头大:)
    我的那个的效率是不是不如你的这个的?
      

  6.   

    $str = "12.2
    内容
    1.4
    内容2
    内容内容
    3.4
    内容拉拉拉";
    $r=preg_split("/\n(?=\d)/",$str);
    function arrw(&$str){
    $pos=strpos($str,"\n");
    $arr[date]=substr($str,0,$pos);
    $arr[content]=substr($str,$pos+1);
    $str=$arr;
    }
    array_walk($r,"arrw");
    echo "<xmp>";
    for($n=0;$n<count($r);$n++)
    echo "DATE:".$r[$n][date]."\nCONTENT:\n".$r[$n][content]."\n\n";