在PHP程式設計中,常常需要判斷一個值是否存在於一個陣列中。如果陣列中存在該值,通常需要取得該值在陣列中的位置或鍵名。本文將介紹在PHP中如何判斷一個值是否存在於一個陣列中,並取得該值在陣列中的位置或鍵名。
一、PHP in_array()函數
PHP提供了一個in_array()函數,用來判斷一個值是否存在於一個陣列中。此函數的語法如下:
bool in_array ( mixed $needle , array $haystack [, bool $strict = FALSE ] )
其中,$needle表示要尋找的值,$haystack表示要尋找的數組,$strict表示是否開啟嚴格模式,預設為false,即不開啟嚴格模式。開啟嚴格模式後,需要同時比較數值和類型。
該函數的傳回值為布林值,即如果$needle存在於$haystack中,則傳回true,否則傳回false。
範例1:檢查一個整數是否存在於一個陣列中
$numbers = array(1, 2, 3, 4, 5);
if (in_array(3, $numbers)) {
echo "3 is found in the array";
} else {
echo "3 is not found in the array";
}
?>
輸出結果為:3 is found in the array
範例2:檢查字串是否存在於一個陣列中
$fruits = array("apple", "banana", "orange", "pear");
if (in_array("orange", $fruits)) {
echo "orange is found in the array";
} else {
echo "orange is not found in the array";
}
?>
輸出結果為:orange is found in the array
二、PHP array_search()函數
在某些情況下,需要取得一個值在陣列中的位置或鍵名。 PHP提供了一個array_search()函數,用於取得一個值在陣列中的位置或鍵名。此函數的語法如下:
mixed array_search ( mixed $needle , array $haystack [, bool $strict = FALSE ] )
其中,$needle表示要尋找的值,$haystack表示要尋找的數組,$strict表示是否開啟嚴格模式,預設為false,即不開啟嚴格模式。開啟嚴格模式後,需要同時比較數值和類型。
該函數的傳回值為查找到的鍵名,如果沒有找到,則傳回false。
範例1:取得整數在陣列中的位置
$numbers = array(1, 2, 3, 4, 5);
$ key = array_search(3, $numbers);
echo "3 is found at position " . $key;
?>
輸出結果為:3 is found at position 2
範例2:取得字串在陣列中的鍵名
$fruits = array("apple" => "red", "banana" => "yellow", "orange" => "orange", "pear" => "green");
$key = array_search("orange", $fruits);
echo "orange is found with key " . $key;
?>
輸出結果為:orange is found with key orange
三、PHP array_keys()函數
如果需要取得一個陣列中所有包含某個值的鍵名,可以使用PHP的array_keys()函數。此函數的語法如下:
array array_keys ( array $array , mixed $search_value [, bool $strict = FALSE ] )
#其中,$array表示要尋找的陣列,$search_value表示要尋找的值,$strict表示是否開啟嚴格模式,預設為false,即不開啟嚴格模式。開啟嚴格模式後,需要同時比較數值和類型。
該函數的傳回值為一個包含所有符合條件的鍵名的陣列。
範例1:取得一個整數在陣列中所有的位置
$numbers = array(1, 2, 3, 4, 5, 3, 6) ;
$keys = array_keys($numbers, 3);
echo "The value 3 is found at positions: ";
foreach ($keys as $key) {
echo $key . " ";
}
?>
輸出結果為:The value 3 is found at positions: 2 5
範例2:取得一個字串在陣列中所有的鍵名
$fruits = array("apple" => "red", "banana" => "yellow", "orange" => "orange", "pear" => "yellow", "orange" => "orange", "pear" => "green", "mango" => "yellow");
$keys = array_keys($fruits, "yellow");
echo "The value yellow is found with keys: ";
foreach ($keys as $key) {
echo $key . " ";
}
?>
#輸出結果為:The value yellow is found with keys: banana mango
四、結論
PHP提供了多種方法來判斷一個值是否存在於一個陣列中,並取得該值在陣列中的位置或鍵名。使用in_array()函數可以輕鬆判斷一個值是否存在於一個陣列中;使用array_search()函數可以取得一個值在陣列中的位置或鍵名;使用array_keys()函數可以取得一個陣列中所有包含某個值的鍵名。根據實際需求,選用不同的方法可以更方便地完成任務。
以上是php判斷值在哪一個數組的詳細內容。更多資訊請關注PHP中文網其他相關文章!