2012-05-31 20 views
6

Ich habe eine Variable wie folgt definiert: $ var = "1, 2, 3"; & Ich habe ein Array: $ ThePostIdArray = Array (1, 2, 3);Generiere Array von einer kommagetrennten Liste - PHP

Das Array oben funktioniert hervorragend, wenn durch sie Looping, aber wenn ich versuche, die $ var anstelle der durch Kommata getrennte Liste zu verwenden, treten Probleme auf.

Also (perfekte Welt) könnte es sein $ thePostIdArray = array ($ var);, was dasselbe wäre wie $ thePostIdArray = array (1, 2, 3);.

Jeder Versuch, bisher noch nicht gearbeitet:. "(

Ist dies überhaupt möglich, oder gibt es eine einfachere Abhilfe

Danke für alle Hinweise

+3

Wenn PHP diese Logik hatte man erwarten, ich verrückt gefahren werden würde :) –

Antwort

40

prüfen out explode. $thePostIdArray = explode(', ', $var);

+0

Deshalb liebe ich stackoverflow :) – Faizan

2

Verwendung Funktion explodiert dies Ihr Problem lösen structu. re wie diese Explosion von

ist
array explode (string $delimiter , string $string [, int $limit ]) 

jetzt $delimiter ist die Grenze string, string $string die Eingabezeichenfolge ist. für Grenzwert:

Wenn limit gesetzt und positiv ist, enthält das zurückgegebene Array ein Maximum an Limit-Elementen, wobei das letzte Element den Rest der Zeichenfolge enthält.

Wenn der Grenzwertparameter negativ ist, werden alle Komponenten mit Ausnahme der letzten -limit zurückgegeben.

Wenn der Grenzwert Parameter Null ist, dann wird diese so behandelt, als 1.

auf dem folgenden Link. Sie können am besten aus dieser link of php.net

2

Für Entwickler lernen, die mit and am Ende will führen den folgenden Code verwenden:

$titleString = array('apple', 'banana', 'pear', 'grape'); 
$totalTitles = count($titleString); 
if($totalTitles>1) 
{ 
    $titleString = implode(', ' , array_slice($titleString,0,$totalTitles-1)) . ' and ' . end($titleString); 
} 
else 
{ 
    $titleString = implode(', ' , $titleString); 
} 

echo $titleString; // apple, banana, pear and grape 
Verwandte Themen