很多站长朋友们都不太清楚php多维数组筛选,今天小编就来给大家整理php多维数组筛选,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 php,请问对已知二维数组,根据某个字段添加条件筛选怎么做? 2、 php 一个多维数组根据一维数组筛选数据,得到新数组 3、 请教如何在PHP多维数组中筛选出自己想要的数值并输出 4、 php 二维数组筛选问题? php,请问对已知二维数组,根据某个字段添加条件筛选怎么做?第一个方法:新建一个空的数组,再循环该数组,如果distance<10000,就压入新建的数组中。
第二个方法:使用array_filter()方法,
<?php
$array = array(
array('id' => 1, 'distance' => 131),
array('id' => 2, 'distance' => 13100),
array('id' => 3, 'distance' => 13231),
);
function filterDistance($arr)
{
return($arr['distance'] < 10000);
}
$array = array_filter($array, "filterDistance");
var_dump($array);
?>
php 一个多维数组根据一维数组筛选数据,得到新数组<?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
)
)
*/
请教如何在PHP多维数组中筛选出自己想要的数值并输出$ar = Array(
Array (
'log_data' => 4,
'log_result' => 0,
'log_time' => '2013-05-08 10:08:40'
),
Array (
'log_data' => 10018,
'log_result' => 2,
'log_time' => '2013-05-08 10:13:58',
),
Array (
'log_data' => 10018,
'log_result' => 2,
'log_time' => '2013-05-08 10:14:02',
),
Array (
'log_data' => 10003,
'log_result' => 50,
'log_time' => '2013-05-08 10:18:29',
),
);
foreach($ar as $item) {
@$res[$item['log_data']][strtok($item['log_time'], ' ')] += $item['log_result'];
}
print_r($res);
php 二维数组筛选问题?<?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多维数组筛选的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。
查看更多关于php多维数组筛选 php多维数组合并相同key的详细内容...