php二维数组过滤
⑴ php 删除二维数组数组元素
假设你的数组为$arr
foreach($arr[2] as $k=>$v) {
if($v == '1') {
unset($arr[2][$k], $arr[1][$k]);
}
}
⑵ php根据某一键值去除二维数组中重复值
简单处理一下,只保留较新的登录时间。而且无重复。
<?php
$a=array(
array(
"role_id"=>"48357" ,
"login_time"=>"2011-08-14 00:02:26"
),
array(
"role_id"=>"48357" ,
"login_time" => "2011-08-14 00:01:51"
),
array(
"role_id"=> "48356",
"login_time"=> "2011-08-14 00:02:25"
),
array(
"role_id"=> "48358",
"login_time"=> "2011-08-14 00:02:45"
),
array(
"role_id"=> "48365",
"login_time"=> "2011-08-14 00:05:52"
),
array(
"role_id"=> "48369" ,
"login_time"=> "2011-08-14 00:06:40"
),
array(
"role_id"=> "48372",
"login_time"=> "2011-08-14 00:08:36"
),
array(
"role_id"=> "48368",
"login_time"=> "2011-08-14 00:06:43"
),
array(
"role_id"=> "48380" ,
"login_time"=> "2011-08-14 00:10:15"
),
array(
"role_id"=> "48377" ,
"login_time"=> "2011-08-14 00:09:48"
),
array(
"role_id"=> "48366" ,
"login_time"=> "2011-08-14 00:07:08"
)
);
$b=array();
foreach($a as $e){
$id=intval($e['role_id']);
$b[$id]=isset($b[$id])?
(strtotime($e['login_time'])>strtotime($b[$id]['login_time']))? $e:$b[$id] : $e;
}
$b=array_values($b);
var_mp($b);
=============
显示
array
0 =>
array
'role_id' => string '48357' (length=5)
'login_time' => string '2011-08-14 00:02:26' (length=19)
1 =>
array
'role_id' => string '48356' (length=5)
'login_time' => string '2011-08-14 00:02:25' (length=19)
2 =>
array
'role_id' => string '48358' (length=5)
'login_time' => string '2011-08-14 00:02:45' (length=19)
3 =>
array
'role_id' => string '48365' (length=5)
'login_time' => string '2011-08-14 00:05:52' (length=19)
4 =>
array
'role_id' => string '48369' (length=5)
'login_time' => string '2011-08-14 00:06:40' (length=19)
5 =>
array
'role_id' => string '48372' (length=5)
'login_time' => string '2011-08-14 00:08:36' (length=19)
6 =>
array
'role_id' => string '48368' (length=5)
'login_time' => string '2011-08-14 00:06:43' (length=19)
7 =>
array
'role_id' => string '48380' (length=5)
'login_time' => string '2011-08-14 00:10:15' (length=19)
8 =>
array
'role_id' => string '48377' (length=5)
'login_time' => string '2011-08-14 00:09:48' (length=19)
9 =>
array
'role_id' => string '48366' (length=5)
'login_time' => string '2011-08-14 00:07:08' (length=19)
⑶ php 二维数组过滤相同的值
$tmp=array();
$s=array();//你的数组
foreach($sas$k=>$v){
if(in_array($v['name'],$tmp)){
unset($s[$k]);
}
$tmp[]=$v['name'];
}
var_mp($s);
⑷ PHP怎么处理二维数组
很简单 看下列代码
//$a为二维数组
$a=array(array('zhangsan'=>20),array('zhangsan'=>3500),array('lish'=>10));
foreach($aas$key=>$value){
foreach($valueas$k=>$v){
if($b[$k]){
$b[$k]=$v+$b[$k];
}else{
$b[$k]=$v;
}
}
}
//$b为合成后的一维数组
var_mp($b);
//array(size=2)
//'zhangsan'=>int3520
//'lish'=>int10//手写请采纳
⑸ PHP怎么删除二维数组的空数组
既然已经知道是二维数组了,那就好版办了
foreach($Aas$k=>$v){
权$A[$k]=array_filter($v);
}
说明:http://us3.php.net/manual/zh/function.array-filter.php
⑹ php二维数组去掉外面的key
$a = array_map('current', $b);
$a 是你要的结果;
$b是你一开始的二维数组。不过在第二层中,仅专对第一个值有效。
例如:
<?php$cars = array ( array(22,18), array("BMW",15,13), array("Saab",5,2), array("Land Rover",17,15) );$b = array_map('current', $cars);var_mp($b);
得到的结果是属:
array(4) { [0]=> int(22) [1]=> string(3) "BMW" [2]=> string(4) "Saab" [3]=> string(10) "Land Rover"}
⑺ PHP二维数组如何实现去除重复项
PHP数组去除重复项有个内置函数array_unique(),但是php的array_unique函数只适用于一维数组,对多维数组并不版适用,不权过你可以在二维数组中的值,用array_unique()即可。
比如:
$array = array(array(1,1,2),array(2,3,4,3));
$temp_array = array();
foreach($array as $key=>$value){
$temp_array[$key] = array_unique($value);
}
$array = $temp_array;
⑻ php如何进行二维数组内进行模糊查询,提供一个可以调用的方法
直接复制粘贴调用就行
//二维数组内进行模糊搜索
function search($a,$b) {
$arr=$result=array();
foreach ($a as $key => $value) {
foreach ($value as $valu) {
if(strstr($valu, $b) !== false)
{
array_push($arr, $key);
}
}
}
foreach ($arr as $key => $value) {
if(array_key_exists($value,$a)){
array_push($result, $a[$value]);
}
}
return $result;
}
⑼ php如何循环删除二维数组中的元素
PHP 中的 unset() 函数可以实现
unset() 函数用来清除、销毁变量,不用的变量,我们可以用unset()将它销专毁。
与删除一属维数组的原理一样
数组的话,通过数组的键名来删除对应的元素
例如:
<?php
$array = array('a'=>array('a1','a2'),'b'=>array('b1','b2'));
foreach($array as $key=>$value){
if($key == 'a')[
unset($array[$key]);
}
//或者删除二维数组中二维中的元素
if($key == 'a')[
unset($array[$key][0]);
}
}
print_r($array);
?>
⑽ php,请问对已知二维数组,根据某个字段添加条件筛选怎么做
第一个方法:新建一个空的数组,再循环该数组,如果distance<10000,就压入新建的数组中。
第二专个方属法:使用array_filter()方法,
<?php
$array=array(
array('id'=>1,'distance'=>131),
array('id'=>2,'distance'=>13100),
array('id'=>3,'distance'=>13231),
);
functionfilterDistance($arr)
{
return($arr['distance']<10000);
}
$array=array_filter($array,"filterDistance");
var_mp($array);
?>