php多維數組inarray
㈠ php里說出數組的常用函數及用法
PHP常用操作數組的函數
變數和數組的轉換
compact() 將變數整合成數組
extract() 將數組中的每個值以鍵的名分解成變數
變數和字元串轉換
explode() 以某個子串分解字元串成數組
implode() 將一維數組根據某個符號拼接成字元串
數組與數組之間關系
array_merge() 合並/並集
array_diff() 差集
array_intersect() 交集
數組值的操作
array_pop() 刪除(彈出)數組最後一個值
array_push() 向數組中追加一個值
判斷數組是否存在數組中
in_array() 判斷一個值是否存在數組中
array_key_exists() 判斷鍵是否存在數組中
數組去重
array_unique() 數組去重
獲取二維數組中的值的集合
array_column() 獲取二維數組中的值的集合
提取數組的鍵與值
array_values 提取數組的值構成一維數組
array_keys 提取數組的鍵構成一維數組
返回數組中的隨機的鍵
array_rand() 返回數組中的隨機的鍵
返回數組中值的數量
count() 返回數組中值的和
查詢數組中的值
array_search() 查詢數組中的值是否存在/in_array()有點相似
排序
sort() 排序有很多種,按鍵或值升降序
array_multisort() 多維數組排序
分割數組
array_chunk()
㈡ php 一個多維數組根據一維數組篩選數據,得到新數組
<?php
$a=array(
'BL001'=>array('A14257','B17548'),
'CDF002'=>array('A14257','C48751'),
'FGE453'=>array('DF5533','GR6445','GH5544'),
'GEN001'=>array('NT7532','DE9342','C48751'),
);
$b=array('A14257','E453T4','Y64344','FG4809','C48751','H4443R');
foreach($aas$k=>$v){
$t=array_intersect($v,$b);
if($t){
$c[$k]=$t;
}
}
print_r($c);
?>
㈢ Php中 in_array 問題
in_array 是查 array 裡面的值的
你先搞清楚 array 和string的概念先吧
$a = array(1,2,3,4,5,6);
裡面的是 '1' ,'2' ...
$b = '1,2,3,4,5,6';
$bb = array($b);
值是 array("1,2,3,4,5,6 ");
㈣ 如何運用PHP函數array
PHP有一個系統函數is_array()可以判斷一個值是否在數組中。
語法如下:
in_array(value,array,type)
return boolen
參數說明:
value :要搜索的值
array : 被搜索的數組
type : 類型,true全等 ,false非全等(默認)
示例一:普通使用
代碼:
$str = 1;
$arr = array(1,3,5,7,9);
$boolvalue = in_array($str,$arr);
var_mp($boolvalue);
執行結果:
bool(true)
實例二:使用第三個參數
非全等
代碼:
$str = '1';
$arr = array(1,3,5,7,9);
$boolvalue = in_array($str,$arr,false);
var_mp($boolvalue);
執行結果:
bool(true)
全等
代碼:
$str = '1';
$arr = array(1,3,5,7,9);
$boolvalue = in_array($str,$arr,true);
var_mp($boolvalue);
執行結果:
bool(false)
實例三:克隆對象
代碼:
class a {
public $a = 1;
public function fun(){
return $this->a;
}
}
class b {
public $a = 2;
public function fun(){
return $this->a;
}
}
$a = new a();
$b = new b();
$c = clone $a;
$arr = array($a,$b);
$boolvalue = in_array($c,$arr,false);
var_mp($boolvalue);
執行結果:
bool(true)
代碼:
class a {
public $a = 1;
public function fun(){
return $this->a;
}
}
class b {
public $a = 2;
public function fun(){
return $this->a;
}
}
$a = new a();
$b = new b();
$c = clone $a;
$arr = array($a,$b);
$boolvalue = in_array($c,$arr,true);
var_mp($boolvalue);
執行結果:
bool(false)
示例四:多維數組
代碼:
$str = 10;
$arr = array(
array(1,2,3,4),
array(5,6,7,8,9),
10
);
$boolvalue = in_array($str,$arr);
var_mp($boolvalue);
執行結果:
bool(true)
代碼:
$str = 10;
$arr = array(
array(1,2,3,4),
array(5,6,7,8,9,10),
);
$boolvalue = in_array($str,$arr);
var_mp($boolvalue);
執行結果:
bool(false)
㈤ php中 in_array 問題
in_array 是判斷一維數組用的。。。$bb二維數組 無法判斷
㈥ 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 刪除多維數組指定元素
foreach($data_arras$key=>$data){
if(in_array('id',array_keys($data))){
unset($data_arr[$key]['id']);
}
}
㈨ PHP判斷數組中是否存在某一數值的函數in_array
函數:in_array -- 檢查數組中是否存在某個值定義:bool in_array ( mixed needle, array haystack [, bool strict] )在haystack 中搜索 needle,如果找到則返回 TRUE,否則返回 FALSE。 如果第三個參數 strict 的值為 TRUE 則 in_array() 函數還會檢查 needle 的類型是否和 haystack 中的相同。 例子1. in_array() 例子<?php $os = array("Mac", "NT", "Irix", "Linux"); if (in_array("Irix", $os)) { echo "Got Irix";}if (in_array("mac", $os)) { echo "Got mac";}?> 第二個條件失敗,因為 in_array() 是區分大小寫的,所以以上程序顯示為: Got Irix 例子2. in_array() 嚴格類型檢查例子<?php $a = array('1.10', 12.4, 1.13); if (in_array('12.4', $a, true)) { echo "'12.4' found with strict check\n";}if (in_array(1.13, $a, true)) { echo "1.13 found with strict check\n";}?> 上例將輸出:1.13 found with strict check 例子3. in_array() 中用數組作為 needle<?php $a = array(array('p', 'h'), array('p', 'r'), 'o'); if (in_array(array('p', 'h'), $a)) { echo "'ph' was found\n";}if (in_array(array('f', 'i'), $a)) { echo "'o' was found\n";}?