Ich versuche, eine Zeichenfolge durch Klammern zu teilen, aber mein Array hat einige zusätzliche leere Werte.Split String von Klammern
Ich habe versucht, den Code einer ähnlichen Frage, die beantwortet wurde, und es teilt die Zeichenfolge, sondern fügt auch leere Werte. dies ist
// faq data
$faq = "SELECT * FROM `web_content` WHERE catid = 13 AND `alias` = '".$conn->real_escape_string($_GET['alias'])."' AND state = 1 ORDER BY ordering";
$faqcon = $conn->query($faq);
$faqcr = array();
while ($faqcr[] = $faqcon->fetch_array());
$faqtext = $faqcr[0]['introtext'];
$arr = preg_split('/\h*[][]/', $faqtext, -1, PREG_SPLIT_NO_EMPTY);
echo '<pre>';
print_r($arr);
echo '</pre>';
Der Ausgang des Arrays:
Array
(
[0] =>
[1] => Vraag1? || Antwoord1
[2] =>
[3] => Vraag2? || Antwoord2
[4] =>
[5] => Vraag3? || Antwoord3
[6] =>
)
Mein String sieht wie folgt aus:
<p>[Vraag1? || Antwoord1]</p>
<p>[Vraag2? || Antwoord2]</p>
<p>[Vraag3? || Antwoord3]</p>
Die <p>
Tags sind irrelevant, im nicht auf jene Spaltung und ich kann nur Verwenden Sie Strip-Tags danach.
Ausgabe der Antwort:
Array
(
[0] => Array
(
[0] => [Vraag1? || Antwoord1]
[1] => [Vraag2? || Antwoord2]
[2] => [Vraag3? || Antwoord3]
)
[1] => Array
(
[0] => Vraag1? || Antwoord1
[1] => Vraag2? || Antwoord2
[2] => Vraag3? || Antwoord3
)
)
Sieht aus wie Sie gerade 'brauchen '/ \ s * [] []/''um auch vertikalen Whitespaces zu entsprechen (das heißt, wenn Sie die Tags entfernen und dann eine Eingabezeichenfolge mit Zeilenumbrüchen erhalten - siehe https://ideone.com/l542yN). –
@ WiktorStribiżew Das gibt mir immer noch leere Array-Werte – twan