4 回答
TA貢獻(xiàn)1934條經(jīng)驗(yàn) 獲得超2個(gè)贊
問(wèn)題:你想知道數(shù)組中是否包含一個(gè)特定的值.
方案:1:使用in_array():
if(in_array($value , $array) ){//在數(shù)組$array中有一個(gè)值為$value的元素}2:創(chuàng)建一個(gè)關(guān)聯(lián)數(shù)組用該值做下標(biāo).
討論:用in_array()來(lái)檢查數(shù)組中是否有一個(gè)元素包含著特定的值:
in_array()函數(shù)在默認(rèn)情況下使用==操作符來(lái)比較兩個(gè)項(xiàng)目是否相等.如果使用嚴(yán)格相等===標(biāo)準(zhǔn),則須將true作為
第三個(gè)參數(shù)傳遞給in_array();例子:$array = array(1,'2','three');
in_array(0,$array);
/*true 它之所以為真 是因?yàn)?將數(shù)字與字符串'three'進(jìn)行比較,而PHP會(huì)把這字符串轉(zhuǎn)換成一個(gè)整數(shù)
因?yàn)樗皇且粋€(gè)數(shù)字字符串(比如:'2' , '2faf' 這是數(shù)字字符串)所以就變成了0.因此,in_array()就認(rèn)為存
在一個(gè)匹配值.所以在把數(shù)字與包含字符串的數(shù)據(jù)比較時(shí),最保險(xiǎn)的方式是使用嚴(yán)格型比較(===)*/
in_array(0,$array,true); //false;
in_array(1,$array); // true
in_array(1,$array,true); //true;
in_array(2,$array); // true
in_array(2,$array,true); //false;
如果要在同一個(gè)數(shù)組上多次調(diào)用in_array()函數(shù),可能使用關(guān)聯(lián)數(shù)組更好一些,這個(gè)新的關(guān)聯(lián)數(shù)組是以原始的數(shù)組
元素作為鍵.用in_array()查尋時(shí),所用的時(shí)間與數(shù)組項(xiàng)目成正比.而對(duì)于關(guān)聯(lián)數(shù)組,時(shí)間則是恒定不變的.
如果不能直接創(chuàng)建這個(gè)關(guān)聯(lián)數(shù)組,而是需要從傳統(tǒng)的整數(shù)數(shù)組進(jìn)行轉(zhuǎn)換,可以用array_flip()來(lái)包裝這個(gè)數(shù)組中的鍵和值.
也就是創(chuàng)建一個(gè)關(guān)聯(lián)數(shù)組用到的值來(lái)做下標(biāo).把要查尋的值來(lái)當(dāng)然下標(biāo)找到該值就存在,不然不存在.
$b = array('Emma','Pride and Prejudice','Northhanger Abbey');
if( isset($b['Emma'] ){echo '也! 找到了';}elseecho '也! 沒(méi)找到';
TA貢獻(xiàn)1811條經(jīng)驗(yàn) 獲得超6個(gè)贊
1、使用List:
| 123 | public static boolean useList(String[] arr, String targetValue) { return Arrays.asList(arr).contains(targetValue);} |
2、使用Set:
| 12345 | public static boolean useSet(String[] arr, String targetValue) { Set<String> set = new HashSet<String>(Arrays.asList(arr)); return set.contains(targetValue);} |
3、使用循環(huán)判斷:
| 1234567 | public static boolean useLoop(String[] arr, String targetValue) { for(String s: arr){ if(s.equals(targetValue)) return true; } return false;} |
4、使用Arrays.binarySearch():
| 1234567 | public static boolean useArraysBinarySearch(String[] arr, String targetValue) { inta = Arrays.binarySearch(arr, targetValue); if(a> 0) return true; else return false;} |
所謂數(shù)組,是無(wú)序的元素序列。 若將有限個(gè)類(lèi)型相同的變量的集合命名,那么這個(gè)名稱(chēng)為數(shù)組名。組成數(shù)組的各個(gè)變量稱(chēng)為數(shù)組的分量,也稱(chēng)為數(shù)組的元素,有時(shí)也稱(chēng)為下標(biāo)變量。用于區(qū)分?jǐn)?shù)組的各個(gè)元素的數(shù)字編號(hào)稱(chēng)為下標(biāo)。數(shù)組是在程序設(shè)計(jì)中,為了處理方便, 把具有相同類(lèi)型的若干元素按無(wú)序的形式組織起來(lái)的一種形式。 這些無(wú)序排列的同類(lèi)數(shù)據(jù)元素的集合稱(chēng)為數(shù)組。
舉例:
int a[10]; 說(shuō)明整型數(shù)組a,有10個(gè)元素。
float b[10],c[20]; 說(shuō)明實(shí)型數(shù)組b,有10個(gè)元素,實(shí)型數(shù)組c,有20個(gè)元素。
char ch[20]; 說(shuō)明字符數(shù)組ch,有20個(gè)元素。
數(shù)組中的所有元素都具有相同類(lèi)型(這一點(diǎn)和結(jié)構(gòu)或類(lèi)中的字段不同,它們可以是不同類(lèi)型)。數(shù)組中的元素存儲(chǔ)在一個(gè)連續(xù)性的內(nèi)存塊中,并通過(guò)索引來(lái)訪問(wèn)(這一點(diǎn)也和結(jié)構(gòu)和類(lèi)中的字段不同,它們通過(guò)名稱(chēng)來(lái)訪問(wèn))。
TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超5個(gè)贊
window.onload = function(){
var arr=new Array(1,2,3,2,4,2,5,6,7,2,4,3,18,12,41,87);
alert(isCon(arr, 8));
}
function isCon(arr, val){
for(var i=0; i<arr.length; i++){
if(arr[i] == val)
return true;
}
return false;
}
TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超4個(gè)贊
可以使用數(shù)組的indexOf()方法,如果返回值為-1則說(shuō)明不存在,如果返回值為大于-1的整數(shù),則說(shuō)明存在。例如: var arr = [1,2,3]; arr.indexOf(1); // 返回0 arr.indexOf(5); // 返回-1 附:返回值為數(shù)組中的最靠前元素在數(shù)組的位置
- 4 回答
- 0 關(guān)注
- 873 瀏覽
添加回答
舉報(bào)
