2017-04-13 40 views
-1

如果我的數組在內部編譯後爲空,我想顯示破折號( - )。以下是我的嘗試。如果沒有值,則使用默認值Implode

結果與數組數據 - >https://repl.it/HIUy/0

<?php 

$array = array(1,2); 
$result = array(); 
foreach ($array as $curr_arr) { 

    $result[] = $curr_arr; 
} 
echo 'Array With Data - ' . implode(',', $result); 
//Result : Array With Data : 1,2 
?> 

的結果,而不在陣列數據 - >https://repl.it/HIVE/0

<?php 

$array = array(); 
$result = array(); 
foreach ($array as $curr_arr) { 

    $result[] = $curr_arr; 
} 
echo 'Array Without Data - ' . implode(',', $result); 
//Result : Array With Data - :  
?> 

正如你在第二個結果看,我無法打印任何東西,如我的陣列是空白的,因此我無法打印任何東西。

不過,我想打印破折號( - )僅通過使用類似array_filter這我已經嘗試過使用implode,但我不能這樣做。在這裏,我已經試過https://repl.it/HIVP/0

<?php 

$array = array(); 
$result = array(); 
foreach ($array as $curr_arr) { 

    $result[] = $curr_arr; 
} 
echo 'Array With Data : ' . implode(',', array_filter($result)); 
//Result : Array With Data :  
?> 

有人可以指導我如何實現這一目標嗎?

感謝

+4

張貼代碼爲你的問題 –

+1

'如果(空(YOUR_ARRAY))'' –

+0

回聲的一部分 '數組沒有數據 - '。 (implode(',',$ result)?:' - ');' –

回答

3

您可以檢查您的數組爲空,然後返回/回聲破折號:

if(!empty($array)){ 
    // Array contains values, everything ok 
    echo 'Array with data - ' . implode('yourGlueHere', $array); 
} else { 
    // Array is empty 
    echo 'Array without data -'; 
} 

如果你想擁有它的一條線,你可以做類似如下:

echo 'Array with' . empty($array) == false ? '' : 'out' . 'data - ' . empty($array) == false ? implode('glue', $array) : ''; 
+0

我已經知道這一點,但我想在內部使用回調或類似的東西,如果沒有條件。 –

+0

@MittulAtTechnoBrave implode只有兩個參數,'glue'和'pieces',沒有任何回調。或者你爲什麼不使用這個線程中的任何答案創建一個自定義幫助函數? – imrealashu

0

答案發布者Tobias F.和Gopi Chand是正確的。

方法1
我建議你去這樣會幫助你(基本上使用三元運算符)。 因爲這裏只是使用implode函數來完成這個任務。

echo empty($result) ? '-' : implode(',',$result); 

方法2
使用這樣的輔助函數。

function myImpllode($glue = "", $array = []) 
{ 
    if(!empty($array)){ 
    // Array contains values, everything ok 
    return implode($glue, $array); 
    } else { 
    // Array is empty 
    return '-'; 
    } 
}