2015-10-20 138 views
1

你好,我想創建字符串數組。我有4個變量:PHP字符串/變量數組和檢查字符串/變量爲空

<?php 
     $name = "John"; 
     $address = "Moscow"; 
     $born_date = "13-11-1995"; 
     $color = "red"; 

     $join = $name.":".$address.":".$born_date.":".$color; 
     $array = explode(':', $join); 
     print_r ($array); 
    ?> 

此數組的結果是:

Array ([0] => John [1] => Moscow [2] => 1995-11-13 [3] => red) 

當我改變$color變量null$color="";

該結果是這樣的:

Array ([0] => John [1] => Moscow [2] => 1995-11-13 [3] =>) 

我想要array ber 3不顯示。我想,如果所有$variable == NULL/$variable=="undefined"/$varable=""

顯示是這樣的:

Array ([0] => John [1] => Moscow [2] => 1995-11-13) 

陣列只顯示充滿變數。

+0

使用'array_filter($陣列);'或使用'if'條件。或者使用'if'條件和'$ array [] = $ name;'etc ...來創建你的數組......不確定你需要創建一個字符串來將'explode()'分配給一個數組,當你可以創建一個數組。 – Rasclatt

+0

舉個例子... –

+0

查看@DontPanic的例子。 – Rasclatt

回答

1

我不確定你的要求是什麼,但是通過將變量加入到一起然後爆炸來創建這個數組似乎很奇怪。你可以只直接添加到陣列中,並有條件地添加顏色:

$array = array($name, $address, $born_date); 
if ($color) { 
    $array[] = $color; 
} 

如果你需要的所有元素有條件地添加,您可以創建一個包含所有這些,那麼陣列使用array_filter爲Rasclatt建議消除空的。

$array = array($name, $address, $born_date, $color); 
$array = array_filter($array); 

如果是很重要的按鍵保持連續,您可以使用

$array = array_values(array_filter($array)); 
+0

我嘗試你的代碼,我改變$ color =「」和$ born_date =「」 –

+0

這born_date總是顯示,所以我必須再次創建其他? –

+0

你的意思是說,如果每個元素不是'null'和'!=「」',那麼它們應該只包含在數組中? –