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多维数组中筛选出自己想要的数值并输出
$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两个二维数组匹配问题
用array_intersect_assoc()函数试试,这个函数的作用是返回两个数组中键和值都相同的元素的交集。
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
)
)
*/