本文目錄一覽:
php in_array 用法問題
in_array() 是判斷 值 在不在指定的數組裡 第二個參數是個數組 第一個參數是具體值。
識別是假就是說在$sel里沒有找到1,1是整形 可以先 intval($se)求整一下 再判斷
$sel[0]有值(傳的值),但是$caizi里沒有$caizi[0] 你用的6做的下標,應該輸出的array[6]看看識別結果
2個自定義的PHP in_array 函數,解決大量數據判斷in_array的效率問題
但是如果數組比較大的時候,性能就會下降,運行的就會久一點,那如果針對在大數組情況下做優化呢,下面說兩種方法(都是通過自定義函數來實現):
1.數組key與value翻轉,通過isset判斷key是否存在於數組中
複製代碼
代碼如下:
/**
*
in_array
is
too
slow
when
array
is
large
*/
public
static
function
inArray($item,
$array)
{
$flipArray
=
array_flip($array);
return
isset($flipArray[$item]);
}
大家可能也會問為什麼不用
array_key_exists
來做判斷二用isset呢?
下面看下array_key_exists()
與
isset()
的對比:
isset()對於數組中為NULL的值不會返回TRUE,而array_key_exists()會。
複製代碼
代碼如下:?php
$search_array
=
array(‘first’
=
null,
‘second’
=
4);
//
returns
false
isset($search_array[‘first’]);
//
returns
true
array_key_exists(‘first’,
$search_array);
?
php兩個數組元素匹配寫法效率的問題
用implode 將$b 中的所有元素鏈接成一個字符串,只用一個for循環,對$a中的元素挨個在合成字符串中查找。
$new=implode(” “,$b);
for($i=0,$icount($a);$i++)
{
if(strstr($new,$a[$i]))
{
echo “find”.”br”;
break;
}
}
我比較菜 很可能不適用 你看看吧 呵呵
用正則表達式怎麼樣:
preg_match(“”,$b);
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/271737.html