-1

我想将此行AT101A (1st Yr.-1st Sem) BSAT-12-01 分成:

array1 = AT101A
array2 = (1st Yr.-1st Sem)
array3 = BSAT

这是我的代码:

$file = $_FILES['file']['tmp_name'];
$handle = fopen($file,"r");

while(($fileop = fgetcsv($handle,1000,",")) !==false)
{
    $coursecode = $fileop[1];
    $units = $fileop[2];
    $day = $fileop[4];
    $timein = $fileop[5];
    $timeout = $fileop[7];
    $room = $fileop[8];
    $section = $fileop[0];

    if($section != "SECTION") {
        $section.split(" " , " ");              
        echo $section;
    } else {

    } 
4

1 回答 1

0

您的代码似乎与您的问题完全无关。它甚至使用.PHP 没有的符号。

但是,如果我们可以使用正则表达式,则以下代码将拆分行:

$input = "AT101A (1st Yr.-1st Sem) BSAT-12-01";
$match_count = preg_match_all( "/^(.+?)(\(.+?\))(.+)$/", $input, $matches );

print_r($matches);

结果:

Array
(
    [0] => Array
        (
            [0] => AT101A (1st Yr.-1st Sem) BSAT-12-01
        )

    [1] => Array
        (
            [0] => AT101A 
        )

    [2] => Array
        (
            [0] => (1st Yr.-1st Sem)
        )

    [3] => Array
        (
            [0] =>  BSAT-12-01
        )

)    

后期处理:

$array1 = $matches[1][0];
$array2 = $matches[2][0];
$array3 = $matches[3][0];

编辑:

如果您的问题来自任何“计算机”类,则不适合正则表达式。问题的主题可能是“使用某些分隔符拆分字符串”,适度使用循环/指针/条件/连接/等。请看一下explode()函数,它有助于解决您的问题。

于 2013-10-04T16:10:39.933 回答