0

私はこれを理解できないようです。4 つのマルチ チェックボックスがあり、implode を使用してそれらを保存します。次に、explode でそれらを取得して比較します。値がチェックされたフォームを表示する必要があるため、チェックした内容を確認し、管理者のレビューのためにデフォルトでそのボックスをオンに表示する必要があります。インデックス 0 に文字列を格納しているため、Explode が機能しているようには見えません。

DBへの保存:

$pulled = implode(",",$pulled);

DBからの取得

<?php          
$pulled = '{pulled}';   // (expression engine CMS field)
echo "before Explode: $pulled <br>";
  // returns:  before Explode: Tanker,End/Bottom Dump,Flatbed,Van 

$pulled = explode(",",$pulled);      
echo "after Explode: <br>";                                    
var_dump($pulled);
  // returns: after Explode: 
              array(1) { [0]=> string(8) "Tanker,End/Bottom Dump,Flatbed,Van" }  


$pos = strpos($pulled[0], 'Tanker');
if ($pos === false) {
   echo "<br><br>The string 'Tanker' was not found in the string '$pulled[0]'";
} else {
   echo "<br>The string 'Tanker' was found in the string '$pulled[0]'";
}
4

2 に答える 2

0

そのはず:

if ($pulled[0] != 'Tanker') {
   echo "<br><br>The string 'Tanker' was not found in the string '$pulled[0]'";
} else {
   echo "<br>The string 'Tanker' was found in the string '$pulled[0]'";
}

var_dump の結果を見るとわかるように、配列の要素 0 はまさに探している文字列です。他に何もする必要はありません。比較するだけです。これが機能しない場合は、元の文字列を正しく取得していません。このコードは私のマシンで動作します:

$pulled = 'Tanker,End/Bottom Dump,Flatbed,Van ';
$pulled = explode(",",$pulled);      

if ($pulled[0] != 'Tanker') {
   echo "<br><br>The string 'Tanker' was not found in the string '$pulled[0]'";
} else {
   echo "<br>The string 'Tanker' was found in the string '$pulled[0]'";
}
于 2012-12-14T13:14:47.670 に答える