2013-05-31 20 views
5

I ein Array, das ich durch Werte in einer Datenbank erzeugt wird, ist das folgende Beispiel:PHP-Array und implodieren mit leeren/Nullwerte

$addressarray = array($results['client']->client_city, $results['client']->client_county, $results['client']->client_postcode); 

Die Werte werden durch den Benutzer eingegeben unter Verwendung eines von der vorstehend Array funktioniert und die richtigen Werte in sie gesetzt, aber manchmal der Benutzer nicht den Kunden Kreis eintreten kann, so deshalb

$results['client']->client_county 

leer sein kann. Ich rufe das Array mit diesem.

$address = implode("\n ", $addressarray); 

Nun ist dies der Teil, ich denke, braucht Festsetzung offensichtlich, wenn alle Felder einen Wert haben, dann werden sie mit Zeilenumbrüchen angezeigt werden, aber wenn, wie ich von dem Kreis erwähnt ist leer, es wird stll Ausgang eine Linie brechen, so erhalten Sie:

city 

postcode 

aber was ich will, ist

city 
postcode 

erraten ich die

\n 

ist das Problem, aber ich bin leer. jede Hilfe wird geschätzt.

Ian

Antwort

15

Ich glaube, Sie array_filter zu Ihrem Array vor der Verwendung implode() Funktion

$address = implode("\n", array_filter($addressarray)); 
+0

brauchen Sie nicht einen Rückruf für array_filter zu überprüfen, ob der Wert leer ist nicht verwenden können? Oder macht Array_Filter das standardmäßig? – TheSnooker

+1

@TheSnookier 'Wenn kein Callback angegeben wird, werden alle Eingaben von FALSE (siehe Umwandlung in boolean) entfernt. – Fabio

+0

You Star, Thankyou – snookian

3

try array_filter() auf der $adressesarray zu verwenden, filtert sie leere Werte. Weiteren array_filter()

Verwandte Themen