PHP二维数组提取函数----把不需要的数据剔除

Posted 夕默

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP二维数组提取函数----把不需要的数据剔除相关的知识,希望对你有一定的参考价值。

  最近做APP接口的时候发现,在服务器返回给APP的接口数据很多都是二维数组的形式,但是这就带来了一些问题,有一些数据是没有用的,这些没有用的数据会给APP方面造成麻烦,于是搜索解决办法发现网上和手册都没有能解决这个问题的函数,于是自己写了一个函数delMemberGetNewArray,可以把二维数组多余的数据给剔除掉,对于以后我们处理数据方面提供了便利,看代码

 1 /*
 2 * delMemberGetNewArray 得到一个新二维数组
 3 * @ $data 原始数组
 4 * @ $del_data var array 传入的改变因子
 5 * @ $flag bool 为false就是原始数组删除包含因子的成员,true就是提取包含因子的成员
 6 */
 7 function delMemberGetNewArray($data,$del_data=null,$flag=false)
 8 {  
 9     if(is_null($del_data)) return false;
10     $count = sizeof($del_data);
11     $new_data = array();
12     $org_count = sizeof($data[0]);
13     if($org_count == $count) return false;        
14     foreach($data as $key => $value)
15     {
16     #提取制定成员操作
17     if($flag == ‘true‘){
18         if(!is_array($del_data)){
19         #提取单个成员操作
20             foreach($value as $k=>$v){
21                 if($k == $del_data){
22                 continue;
23             }else{
24                 unset($value[$k]);
25             }
26             }    
27         }else{
28         foreach($value as $k=>$v){
29             foreach($del_data as $del_key=>$del_value){
30             if($k == $del_value){
31                 continue;      
32             }else{
33                 if(!in_array($k,$del_data))
34                 {
35                     unset($value[$k]);
36                 }
37             }
38             }
39         }                
40         }
41         $new_data[$key]= $value;    
42     }else{
43     //传入数组删除操作
44     if(is_array($del_data))
45     {
46         foreach($del_data as $del_value)
47         {
48                 unset($value[$del_value]); 
49         }
50     //传入单个变量删除操作
51     }else{
52         unset($value[$del_data]);
53     }    
54     $new_data[$key]= $value;
55     }
56     }
57     return $new_data;
58 }
其中,$del_data可以是变量也可以是数组,可以灵活使用$flag这个参数,比如二维数组的数据很多,你只想提取你想要的数据,这时你就可以把你想提取的数据(二维数组成员键名)写为一个一位数组,例如$del_data=(‘name‘,‘age‘),传入函数并设置为ture,就会生成一个只包含传入数组的新二维数组,如果二维数组的数据你只有一个不想要,就可以传入一个想删除的成员(二维数组成员键名),并设置为false就可以了。

 

以上是关于PHP二维数组提取函数----把不需要的数据剔除的主要内容,如果未能解决你的问题,请参考以下文章

php对二维数据进行排序

3-二维数组中的查找

二维数组中查找指定的数

php 数组剔除部分数据?

php中计算二维数组中某一元素之和的函数是那个啊?谢谢……

剑指 Offer——1. 二维数组中的查找