2016-05-12 7 views
0

を配列の値をチェック:は、私は、アレイ次きて

Array 
(
    [0] => class="amount">€39,00 
    [2] => class="subscription-details"> 
    [4] => für 
    [5] => 1 
    [6] => month 
) 

を私は価値の6番目の要素は、「月」であるかどうかを確認したいです。

print_r($test[6]); //Output month 

if($test[6] == 'month'){ 
    echo 'Alex'; //should output 
}else{ 
    echo 'Ecke'; //will output 
} 

なぜこのコードが出力されます「エッケ」ではなく「アレックス」:

私はこのコードを使うのか?

編集:

var_dump($test[6])出力=文字列(12)

var_export($test[6])出力= '月'

でvar_export($テスト)=

<pre>array (
    0 => '<span', 
    1 => 'class="amount">&euro;39,00</span>', 
    2 => '<span', 
    3 => 'class="subscription-details">', 
    4 => 'für', 
    5 => '1', 
    6 => 'month</span>', 
)</pre> 
+0

print_r()ではなくvar_dump()を使用すると、配列の値に空白などの不可視文字があるかどうかを知ることができます –

+0

'var_export '配列全体に対して、これはコードをコピー/ペーストして簡単なテストをすることができるからです。 –

+0

はい..編集します:p – cgee

答えて

1

それは出力アレックスを行います。ここで私が理解しているようにあなたのコードをほとんど繰り返す最も簡単なテストケースです。私は、スクリプトを実行すると

<?php 
$test = [ 
    0 => 'class="amount">€39,00', 
    2 => 'class="subscription-details">', 
    4 => 'für', 
    5 => 1, 
    6 => 'month</span>', 
]; 

var_dump($test[6]); 
var_export($test[6]); 

if (trim(strip_tags($test[6])) == 'month') { 
    echo PHP_EOL.'Alex'.PHP_EOL; //should output 
} else { 
    echo PHP_EOL.'Ecke'.PHP_EOL; //will output 
} 

は、私はあなたのために、アレイvar_exportの結果を示してくださいすることができ

string(12) "month</span>" 
'month</span>' 
Alex 

を取得します。ほとんどの場合、単語の月に先頭または末尾のスペースがあります。 trimの文字列を '月'と比較する前に、この文字列を入力してください。

更新:var_dumpの結果が届いたら、あなた自身の質問に答えたと思います。 $test[6]の値は月ではありませんが、month</span>

私はこのためのテストを更新し、strip_tags関数を追加しました。これは単に楽しく、余分なタグを簡単に削除できることを示すためです。

+0

私の質問を編集..あなたの答えは私のために動作しません。 – cgee

+0

頂きましてありがとうございます。var_export() – cgee

0

まあ、これは

var_dump($test[6]) outputs = string(12) 

monthは12文字の長ではありません...問題のようです。あなたはおそらく、その文字列の中に文字列以外の文字を持っていますmonth

関連する問題