2011-11-21 15 views
3

配列に値が存在するかどうかをチェックするためにこのコードを試しています。私が欲しいもの配列に値が存在するかどうかを確認します。

$arr = array ('2' => '0', '3' => '0.58'); 

$num=3; 
if (array_key_exists($num, $arr)) { 
    echo (array_key_exists($num, $arr)); //show the index, in this case 1 
} 

0.58

が、私はそれをどのように行うことができ、他の言葉で、対応した値を示しているのですか?

+1

あなたは '$ arr ['3']'を意味しますか? '$ numCol'と' $ IA'をどこから取得していますか? – animuson

+0

キー「3」のインデックスは「1」ではなく、「3」です。配列内の* 2番目のエントリですが、この情報は必ずしも取得可能ではありません。 – deceze

+0

申し訳ありませんが、コピーしたときに変数の名前を変更しましたが、これらの変数を忘れてしまいました。 –

答えて

5

はこれです:

$arr = array ('2' => '0', '3' => '0.58'); 

$num=3; 
if (array_key_exists($num, $arr)) { 
    echo $arr[$num]; 
} 
+0

ありがとう、問題が解決しました。 –

1
var_dump(in_array(0.58, $arr)); // 3 

関連docs。あなたが必要なもの

1

はあなたがしたい値のキーまたはインデックス位置を持っていると仮定すると

<?php 
$arr = array(
    '2' => '0', 
    '3' => '0.58' 
    ); 

$num = 3; 
if (array_key_exists($num, $arr)) { 
    echo $arr[$num]; 
    // 0.58 
} 
echo '<br/>'; 
$val = '0.58'; 
if (in_array($val, $arr)) { 
    echo '0.58 found'; 
} 
?> 
+0

NULL値を期待しない限り、 'isset($ arr [$ num])'は同等ですが、 'array_key_exists'よりはるかに高速です。 – chx

2

それを試してみて、あなたが使用できる二つの機能があり、 array_key_exists()またはisset()

array_key_exists()は、指定したキーが配列内に存在するかどうかを確認するために配列をチェックします。このキーに関連付けられた値があるかどうかをチェックしません。言い換えれば、キーは配列に設定できますが、値はnullでもかまいません。

使用例:値は、特定の配列インデックスに設定されているかどうかを確認するために使用することができる

$arr = array ('2' => '0', '3' => '0.58'); 

$num=3; 
if (array_key_exists($num, $arr)) { 
    echo $arr[$num]; 
} 
isset()

使用例:

$arr = array ('2' => '0', '3' => '0.58'); 

$num=3; 
if (isset($arr[$num])) { 
    echo $arr[$num]; 
} 

だけ特定の値が配列内に存在するかどうかを確認するように求めるように見えるので、あなたは値をスキャンしますどのin_array()を使用して見てみることができその値が見つかったかどうかによって、trueまたはfalseを返します。

使用例:

$arr = array ('2' => '0', '3' => '0.58'); 
$needle = '0.58'; 
if (in_array($needle, $arr)) { 
    echo "found: $needle"; 
} 

はさらに、php.netはあなたを理解しておく必要があり、他のarray functionsをたくさん持っています。

関連する問題