商务英语听说</td>90</td>2.0</td></tr>形势与政策(八)</td>70</td>0.5</td></tr>积极心态训练</td>89</td>1.0</td></tr>欧洲旅游产品设计与营销</td>76</td>2.0</td></tr>
把上面的用遍历成,绩点是按照分数算的
课程:  形势与政策(八)  绩点:2.0   成绩:70 
课程:  积极心态训练   绩点:3.0   成绩:89 
课程:  欧洲旅游产品设计与营销    绩点:2.0   成绩:76 
课程:      商务英语听说   绩点:4.0   成绩:90 

解决方案 »

  1.   

    $str = '商务英语听说</td>90</td>2.0</td></tr>形势与政策(八)</td>70</td>0.5</td></tr>积极心态训练</td>89</td>1.0</td></tr>欧洲旅游产品设计与营销</td>76</td>2.0</td></tr>';
    $data = explode('</tr>', $str);
    foreach($data as $itm){
    if($itm){
    list($course_name, $score) = explode('</td>', $itm);
    //绩点自己算
    }
    }
      

  2.   

    $s = '商务英语听说</td>90</td>2.0</td></tr>形势与政策(八)</td>70</td>0.5</td></tr>积极心态训练</td>89</td>1.0</td></tr>欧洲旅游产品设计与营销</td>76</td>2.0</td></tr>';
    $d = array_chunk(preg_split('#(</t.>)+#', $s), 3);
    array_pop($d);
    foreach($d as $v) $r[] = $v[2];
    array_multisort($r, $d);
    foreach($d as $v) printf("课程: %s %s %s\n", $v[0], $v[2], $v[1]);课程: 形势与政策(八) 0.5 70
    课程: 积极心态训练 1.0 89
    课程: 欧洲旅游产品设计与营销 2.0 76
    课程: 商务英语听说 2.0 90
      

  3.   

    $str = "商务英语听说</td>90</td>2.0</td></tr>形势与政策(八)</td>70</td>0.5</td></tr>积极心态训练</td>89</td>1.0</td></tr>欧洲旅游产品设计与营销</td>76</td>2.0</td></tr>";
    $sr = explode("</tr>",$str);
    $sr = array_filter($sr);
    $result = "";
    foreach($sr as $v)
    {
    $v = explode("</td>",$v);
    $v = array_filter($v);
    $result.= "课程:".$v[0]."绩点:".$v[1]."成绩:".$v[2]."<br>";
    }
    print_r($result);
      

  4.   

    $str = "商务英语听说</td>90</td>2.0</td></tr>形势与政策(八)</td>70</td>0.5</td></tr>积极心态训练</td>89</td>1.0</td></tr>欧洲旅游产品设计与营销</td>76</td>2.0</td></tr>";
    $sr = explode("</tr>",$str);
    $sr = array_filter($sr);
    $result = "";
    $str = str_replace("</tr>","",$str);
    $ex = explode("</td>",$str);
    $ex = array_filter($ex);
    $ex = array_chunk($ex,count($sr)-1);
    foreach($ex as $v)
    {
     printf("课程:%s 绩点:%s 成绩:%s <br>", $v[0], $v[2], $v[1]);
    }