-1

我的 PHP 变量是

$rowdata = "58617 INDUSTRY ORIENTED MINI PROJECT 0 43 43 P";

如果我打印

$rowdata 

那么输出是

58617 INDUSTRY ORIENTED MINI PROJECT 0 43 43 P

它的html代码是

58617
INDUSTRY ORIENTED MINI PROJECT
0
43
43
P

我需要将此变量拆分为

$split[0] = "58617";
$split[1] = "INDUSTRY ORIENTED MINI PROJECT";
$split[2] = "0";
$split[3] = "43";
$split[4] = "43";
$split[5] = "P";

我试过 $split = explode(" ", $rowdata);

但它分为两部分

谁能帮我做这件事

4

4 回答 4

1

这应该可以解决问题:

$string = '58617 INDUSTRY ORIENTED MINI PROJECT 0 43 43 P';
$string = preg_replace('/([\d]+|[a-zA-Z\s]+) /', '$1-');
$parts = explode('-', $string);

preg_replace()破折号替换您需要休息的每个空间,之后,刺痛在破折号处爆炸。

于 2013-07-17T07:25:53.930 回答
0

如果您想从链接中提供的数据中获取拆分变量,则更容易,因为它具有适当的分隔符。

示例代码:

$rowdata = '<TR>
    <TD class="tr3 td20"><P class="p9 ft8">58617</P></TD>
    <TD class="tr3 td21"><P class="p8 ft8">INDUSTRY ORIENTED MINI PROJECT</P></TD>
    <TD class="tr3 td22"><P class="p13 ft8">0</P></TD>
    <TD class="tr3 td23"><P class="p14 ft8">47</P></TD>
    <TD class="tr3 td24"><P class="p12 ft8">47</P></TD>
    <TD class="tr3 td25"><P class="p8 ft8">P</P></TD>
    <TD class="tr3 td13"><P class="p6 ft5">&nbsp;</P></TD>
        </TR>';
if (preg_match_all('/<TD[^>]*><[^>]*>([^<]*)<\/P><\/TD>/i',$rowdata,$split_tmp) >0 ){
    $split=$split_tmp[1];
    print_r ($split[1]);
}
于 2013-07-17T07:47:51.297 回答
0

不是很优雅 - 但它可以解决问题:

<?php
$rowdata = "58617 INDUSTRY ORIENTED MINI PROJECT 0 43 43 P";
$arr_dig = array_filter(preg_split('/\D/', $rowdata), 'strlen');
$arr_str = array_filter(preg_split('/\d/', $rowdata), 'strlen');
// remove unwanted spaces from the array
$arr_str = array_filter(array_map('trim', $arr_str));
//print_r($arr_dig);
//print_r($arr_str);
?>
于 2013-07-17T07:43:57.317 回答
0

这是我的看法:

<?php
$rowdata = "58617 INDUSTRY ORIENTED MINI PROJECT 0 43 43 P";
//$rowdata = "58039 ADHOC & SENSORS NETWORKS 20 43 63 P";
$arr1=explode(" ",$rowdata);
$count=count($arr1);
$split[0]=$arr1[0];

for($i=1;$i<=($count-5);$i++){
    $split[1].=$arr1[$i] . " ";
}

$split[2]=$arr1[$count-4];
$split[3]=$arr1[$count-3];
$split[4]=$arr1[$count-2];
$split[5]=$arr1[$count-1];
print_r($split);
?>

也应该适用于其他数据。

于 2013-07-17T07:54:19.143 回答