php 爆炸效果不佳

php explode is not working well

请帮我解决我的代码问题。 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]')"); 

    }
}

谢谢。

您的 for 循环太多了,您的 $row 将包含您想要的内容。

$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]')"); 
}