php explode效果不佳

时间:2016-09-24 19:55:30

标签: php explode

请帮我解决我的代码问题。 explode() 对我没用。

我需要的是将所有这些单独的单词插入到数组“$traceData”中,以便我可以通过数组索引访问它们。 ($traceData[1]$traceData[2] ...)

我的$_GET[allTrace]是:

Quality|good|bad|reason\nQuality2|good2|bad2|reason2\nQuality3|good3|bad3|reason3\n

$allTrace = explode("\n",$_GET[allTrace]);

foreach ($allTrace as $value) {

$row = explode("|", $value);

    foreach($row as $traceData) {

        mysqli_query($con,"INSERT INTO trace VALUES (null, '$_COOKIE[user011]', '$traceData[0]', '$traceData[1]','$traceData[2]', $date, '$traceData[3]', '$_GET[page]')"); 

    }
}

谢谢。

1 个答案:

答案 0 :(得分:0)

那里有一个太多的循环,你的$行将包含你想要的东西。

$string = "Quality|good|bad|reason\nQuality2|good2|bad2|reason2\nQuality3|good3|bad3|reason3\n";

$allTrace = explode("\n",$string);

foreach ($allTrace as $value) {
$row = explode("|", $value);
    print_r($row);
}

然后您会注意到foreach的第一次迭代

$row = Array ( [0] => Quality [1] => good [2] => bad [3] => reason ) 

所以你想拥有的是:

$allTrace = explode("\n",$_GET[allTrace]);

foreach ($allTrace as $value) {

    $traceData = explode("|", $value);

    mysqli_query($con,"INSERT INTO trace VALUES (null, '$_COOKIE[user011]', '$traceData[0]', '$traceData[1]','$traceData[2]', $date, '$traceData[3]', '$_GET[page]')"); 
}