2011-11-21 144 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

你的意思是'$改編[ '3']'?你從哪裏得到'$ numCol'和'$ IA'? – animuson

+0

鍵「3」的索引不是「1」,它是「3」。它是數組中的* second *條目,但是這些信息不一定是可檢索的。 – 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()檢查數組以查看您指定的鍵是否存在於數組中。它不檢查是否有與此密鑰相關的值。換句話說,該鍵可以在數組中設置,但是該值可以爲空。

示例用法:

$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