2013-05-31 28 views
5

Mam tablicy które generowane wartościami w bazie danych, w przykładzie poniżej:tablicy PHP i implozji z pustymi/wartości zerowych

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

wartości są wprowadzane przez użytkownika za pomocą od powyższy tablica działa i są w niej umieszczane poprawne wartości, jednak czasami użytkownik nie może wejść do obszaru klientów, więc może być pusty. Dzwonię do tablicy z tym.

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

Teraz jest to część, która myślę, że potrzeba ustalenia, oczywiście jeśli wszystkie pola mają wartość następnie są one wyświetlane z przerwami linii, ale jeśli tak jak wspomniałem powyżej powiatu jest puste to będzie stll wyjściową linię złamać tak dostaniesz:

city 

postcode 

ale to, co chcę jest

city 
postcode 

I zgadywania

\n 

to problem, ale jestem pusty. każda pomoc doceniona.

Ian

Odpowiedz

15

myślę, że można użyć array_filter do macierzy przed użyciem implode() funkcji

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

nie trzeba oddzwonić do array_filter aby sprawdzić, czy wartość jest pusta? lub czy array_filter robi to domyślnie? – TheSnooker

+1

@TheSnookier 'Jeśli nie zostanie podane żadne wywołanie zwrotne, wszystkie wpisy wejściowe równe FALSE (zobacz konwersję na wartość logiczną) zostaną usunięte." – Fabio

+0

You Star, Thankyou – snookian

3

spróbuje użyć array_filter() na $adressesarray, filtruje pustych wartości. Więcej array_filter()