2016-09-24 2 views
0

Пожалуйста, помогите мне с моим кодом. explode() не работал для меня.php 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]')"); 

    } 
} 

Спасибо.

+0

'$ allTrace = взорваться ("\ п" , $ _ GET [allTrace]); 'нужно быть' $ allTrace = explode ('\ n', $ _ GET ['allTrace']); 'check once –

+0

' $ allTrace = explode ("\ n", $ _ GET [ allTrace]); 'нет смысла. Запишите его ** '$ allTrace = explode (" \ n ", $ _ GET [" allTrace "]); ** – SHAZ

ответ

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); 
} 

Вы обратите внимание на то для первой итерации в цикле, что

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