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";}?