2017-10-05 2 views
2

Ich habe eine PHP-while-Schleife wie folgt:Output Array in einem bestimmten Format

$tmp = array(); 
//loop for category dropdown menu 
while($r = $stmt->fetch())   
{ 
$start_time = $r['consultation_start']; 
$end_time = $r['consultation_end']; 
$holiday = htmlspecialchars($r['consultation_holidays']); 
$tmp[] =sprintf(" $holiday ,");  
} 
//concatenate loop strings 
foreach($tmp as $output) 
{ 

$holidays = implode('', $tmp); 
$consultholidays = substr_replace($holidays ,"",-1); 
} 
echo $consultholidays; 
$stmt->closeCursor(); 
} 

Ich brauche die Ausgabe im Format zu erhalten:

[Sunday], [Wednesday] 

ich versuchte, mit:

$tmp[] =sprintf(" [$holiday] ,"); 

Aber es gibt Ausgabe als:

[Sunday,Wednesday] 

Wie kann ich das Ausgabeformat wie:

[Sunday], [Wednesday] 

Sorry, ich bin neu in PHP und learning..so bitte Fehler verzeihen.

+0

Was enthält '$ holiday'? Veröffentlichen Sie seinen Wert. – mega6382

+0

@ mega6382 $ holiday enthält Sonntag, Mittwoch – Pamela

+0

this '[Sonntag, Mittwoch]' nicht definieren, ist es String oder ein Array, so sei spezifisch. – User97798

Antwort

2

Versuchen folgende:

$holiday = "Sunday,Wednesday"; 
$holidays = explode(",",$holiday); 

$tmp[] = '['.implode('], [', $holidays).']'; 

var_dump($tmp); 

Oder diese:

function surround($item) 
{ 
    return "[" . ($item) . "],"; 
} 
$holiday = "Sunday,Wednesday"; 
$holidays = explode(",",$holiday); 
$str = implode(array_map('surround', $holidays)); 
$tmp[] = rtrim($str,','); 

var_dump($tmp); 

Der erste verwendet implodieren nur das Array zusammen zu kleben und sie durch ], [ und umgibt die gesamte Zeichenfolge durch [ Trennen und ].

Während der zweite verwendet array_map um einzelne Artikel zu umgeben und dann verwendet implode, um sie in Zeichenfolge zu verwandeln.

+0

@ mega6382 array (1) {[0] => string (21)" [Sonntag], [Mittwoch] "} – Pamela

+0

Bei welcher Lösung 1. oder 2.? – mega6382

+0

@Pamela in Ordnung, behoben versuchen Sie es erneut. – mega6382

2

, wie ich dachte, wenn, wenn $ tmp Array und diese [Sunday], [Wednesday] Array zu

, so dass Sie wie die

$tmp[] = [$holiday]; 

tun können, aber wenn diese Zeichenfolge wie '[Sunday], [Wednesday]'

ist

versuchen so diese

$tmp[] = $holiday; 
echo '['.implode('], [', $tmp).']'; 

Demo

+0

??? . Es wird Ausgabe als Array geben. – Pamela

+0

Ich habe aktualisiert Antwort werfen Sie einen Blick –

+0

Ausgabe ist: [Sonntag, Mittwoch] – Pamela

Verwandte Themen