2011-07-05 17 views
1
// 40 characters string combine by 5 different fields 
$field1 = apple; 
$field2 = orange; 
$field3 = pineapple; 
$field4 = banana; 
$field5 = strawberry; 

// fields will be separated with a comma 
$string = implode(", ", array_filter(array($field1, $field2, $field3, $field4, $field5))); 

// string will be cut off at about 15th characters then make a break line   
$stringList = explode("\n", wordwrap($string , 15)); 

// 1st rowField takes the 1st line of string 
$rowField1 = array_shift($nutritionalList); 
$string = implode(" ",$stringList); 
$stringList = explode("\n", wordwrap($string , 25)); 
$rowField2 = "From 1st Row continued" . "\n" . implode("\n", $stringList) . "\n \n";} 

は、この出力が表示されます:$field3場合PHP if文が機能しない?

$rowField1 = "apple, orange" 
$rowField2 = "From 1st Row continued \n pineapple, banana, strawberry" 

をしかし、私の問題は、$field4で、$field5はNULLです、私はテキストを含む$rowField2を表示したくない

「を1行目から続きます」

if (isset($stringList)) { 
    $rowField2 = "From 1st Row continued\n" . implode("\n", $stringList) . "\n\n"; 
} 
else { 
    $rowField2 = NULL; 
} 

しかし:

は私がIF/ELSEとISSET手順を試してみましたには、「1行目以降」と表示されます。最後の3つのフィールドがNULLの場合は表示しないようにします。

+0

です'$ field1 =" apple ";ではなく' $ field1 = apple; '?定義された定数が表示されません。 –

+0

@Tomalak Geret'kal:タイプミスについて申し訳ありません。私の質問をすばやく出すためにできるだけ速くコードをタイプし直していました。とにかく、shashankの解決策が私のために働いた。だから私は満足している:)おかげで感謝 –

+0

あなたの質問のコードを修正する上記の "編集"をクリックすることができます。 –

答えて

3

これを試してみると、 "apple、orange"と出力されます。

は問題ありませんか?

<?php 
$field1 = 'apple'; 

$field2 = 'orange'; 

$field3 = ''; 

$field4 = ''; 

$field5 = ''; 

// fields will be seperated with a comma 

$string = implode(", ", array_filter(array($field1, $field2, $field3, $field4, $field5))); 

// string will be cut off at about 15th characters then make a break line 

$stringList = explode("\n", wordwrap($string , 15)); 

// 1st rowField takes the 1st line of string 

$rowField1 = array_shift($stringList); 

$string = implode(" ",$stringList); 

$stringList = explode("\n", wordwrap($string , 25)); 

$rowField2 = (isset($stringList[0]) && !empty($stringList[0])) ? "From 1st Row continued" . "\n" . implode("\n", $stringList) . "\n \n" : ''; 
echo $rowField1; 
echo "<br />"; 
echo $rowField2; 
exit; 
?> 
+0

それは働いた!!!!!ワオ。ありがとうShashank Patel! –

+0

-1:['empty'](http://php.net/manual/en/function.empty.php)は、あなたが思っていることをしません。 –

+0

実際には私は彼が配列に取り組んでいることに気が付いたので-1を取り戻すでしょうが、私はまだ空であることをお勧めしません。 –

1

私は条件を使用しているだろう:

if(isset($stringList) && count($stringList) > 0){ 
    // blah blah 
} 
0

$stringListは常にになりますがを設定するが、それは常にそれのコンテンツを持っていません。

emptyは何も読んでいないので、—はempty("0")TRUEです。 —は、この場合でも配列上では動作しますが、

私の推奨されるアプローチ:それはあなたが例えば書いた意図的な

if (count($stringList)) { 
    $rowField2 = "From 1st Row continued\n" . implode("\n", $stringList) . "\n\n"; 
} 
else { 
    $rowField2 = NULL; 
} 
+0

このコードも試してみます。ありがとう! –