我正在尋找一個字符串作爲數組中的數組值是否存在以檢查是否可能以及如何使用PHP?在數組中搜索匹配的字符串
2
A
回答
8
如果你只是想知道,如果它存在,使用in_array(),如:
$exists = in_array("needle", $haystack);
如果你想知道它的相應的鍵,用array_search(),如:
$key = array_search("needle", $haystack);
// will return key for found value, or FALSE if not found
1
0
3
你可以使用PHP的in_array
函數來查看它是否存在,或者array_search
看看它在哪裏。
例子:
$a = array('a'=>'dog', 'b'=>'fish');
in_array('dog', $a); //true
in_array('cat', $a); //false
array_search('dog', $a); //'a'
array_search('cat', $a); //false
0
的array_search
功能不正是你想要的。
$index = array_search("string to search for", $array);
1
再者,雖然你可能應該使用in_array
或array_search
喜歡這些美好的先生們建議,只是讓你知道該怎麼做的情況下,你需要做一個手動搜索,你也可以這樣做:
<?php
// $arr is the array to be searched, $needle the string to find.
// $found is true if the string is found, false otherwise.
$found = false;
foreach($arr as $key => $value) {
if($value == $needle) {
$found = true;
break;
}
}
?>
我知道這似乎愚蠢做了人工搜索,找到一個字符串 - 它是 - 但你可能有一天希望與數組做更復雜的東西,所以它的好,知道如何真正得到每$ key- $值對。
0
說我們有這個數組:如果你想檢查元素「富」是陣列中
<?php
$array = array(
1 => 'foo',
2 => 'bar',
3 => 'baz',
);
?>
,你會如果你想獲得這樣做
<?php
if(in_array('foo', $array)) {
// in array...
}else{
// not in array...
}
?>
「富」的數組索引,你可以這樣做:
<?php
$key = array_search('foo', $array);
?>
此外,對於自變量在這些函數的順序一個簡單的規則是:「需要樂,然後乾草堆「;你在找什麼應該是第一位的,你在找什麼。
相關問題
- 1. 字符串搜索/通配符匹配
- 2. 正在搜索匹配的字符串
- 3. 字符串匹配的搜索
- 4. 如何搜索匹配字符串的Perl數組?
- 5. 在字符串中搜索整數。數據類型不匹配?
- 6. 字符串數組匹配字符串
- 7. 如何在C#中搜索匹配的字符串數組,如我的代碼
- 8. 用於在數組中匹配匹配索引字符串的PHP函數?
- 9. 字符串搜索數組
- 10. 在數組中搜索字符串
- 11. 在Java中搜索字符串數組?
- 12. 最簡單的方法來匹配字符串數組在Perl中搜索?
- 13. 在字符串數組中搜索精確的字符串?
- 14. 數組中的Ruby匹配字符串
- 15. 搜索可變數組中的通配符和字符串
- 16. 字符串匹配字符串搜索列表
- 17. VB.net搜索數組中的字符串
- 18. 在變量中搜索字符串並返回匹配的字符串
- 19. Erlang:在列表中搜索匹配的字符串
- 20. 如何在SOLR/lucene中匹配搜索字符串的子集
- 21. 在字符串中搜索字符串並製作數組
- 22. 在字符串數組中搜索子字符串?
- 23. 如何通過匹配字符串中的值來搜索數組鍵值
- 24. 找到數組中的字符串匹配數組在JavaScript中?
- 25. 在字符串數組內搜索
- 26. 在全文搜索中匹配子字符串不起作用
- 27. R:搜索谷歌的字符串並返回匹配數
- 28. 搜索字符串數組中的字符串
- 29. Excel VBA搜索字符串中的數組字符串
- 30. LINQtoSql - 如何基於字符串數組的通配符搜索
可能的重複:http://stackoverflow.com/questions/555975/how-to-find-a-string-in-an-array-in-php – 2010-08-17 19:14:19