一种就是递归循环,加判断 然后组成一个新的数组 ! 也是最简单的
西岗ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为成都创新互联公司的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:028-86922220(备注:SSL证书合作)期待与您的合作!
?php
$arr = array(
array('id'='1','姓名'='小白','性别'='男','班级'='1','总分'=75),
array('id'='2','姓名'='小黑','性别'='男','班级'='1','总分'=76),
array('id'='3','姓名'='小明','性别'='女','班级'='1','总分'=77),
array('id'='4','姓名'='小光','性别'='女','班级'='1','总分'=80),
array('id'='5','姓名'='小草','性别'='女','班级'='1','总分'=82),
array('id'='6','姓名'='小丽','性别'='男','班级'='1','总分'=90),
array('id'='7','姓名'='小红','性别'='男','班级'='1','总分'=90),
array('id'='8','姓名'='小蓝','性别'='男','班级'='1','总分'=84)
);
//第一次遍历数组筛出男性
//用到循环函数、数组函数:foreach、array_push
$manArr = array();//定义个空数组,一会装男性数据
$topScore = 0;//定义个最高总分,一会在遍历过程顺便获取最高分
foreach($arr as $v){
if($v['性别']=='男'){
//对符合男生条件的数组进行记录
array_push($manArr,$v);//把符合男性条件的数组装进刚定义的空数组
//记录男生最高分的分数
if($v['总分']$topScore){
$topScore = $v['总分'];
}
}
}
//所以现在$manArr就是所有男性了,array('小白'=75,...)
//接下来是求出总分最高的,继续用循环的方式取出成绩等于最高分数的
foreach($manArr as $v){
if($v['总分']==$topScore){
echo $v['姓名'] . "\r\n";
}
}
这样?
其实很简单, 通过 php 内置函数 strstr 检索字符串的子串就可以做到这种类似于模糊搜索的功能。
?php
// 定义数组 1
$arr1 = array(
'BL001' = array(
'0' = 'A14257',
'1' = 'B17548'
),
'CDF002' = array(
'0' = 'A14257',
'1' = 'C48751'
),
'FGE453' = array(
'0' = 'DF5533',
'1' = 'GR6445',
'2' = 'GH5544'
),
'GEN001' = array(
'0' = 'NT7532',
'1' = 'DE9342',
'2' = 'C48751'
)
);
// 定义数组 2
$arr2 = array(
'A14257',
'E453T4',
'Y64344',
'FG4809',
'C48751',
'H4443R'
);
// 定义结果数组 $result
$result = array();
foreach ( $arr1 as $k = $v ) // 遍历数组 1
foreach ( $v as $s ) // 遍历数组 1 第 2 维
if ( in_array( $s, $arr2 ) ) { // 包含数据 2 的任意值
if ( ! isset( $result[$k] ) || ! is_array( $result[$k] ) )
$result[$k] = array();
$result[$k][] = $s; // 添加到结果数组
}
// 输出测试结果
print_r( $result );
/*
Array
(
[BL001] = Array
(
[0] = A14257
)
[CDF002] = Array
(
[0] = A14257
[1] = C48751
)
[GEN001] = Array
(
[0] = C48751
)
)
*/