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);
?>