php 二维数组去除一项,PHP二维数组提取函数----把不需要的数据剔除

这篇博客介绍了如何在C语言中处理二维数组,包括删除或提取数组成员,以及作为函数参数传递的方法。通过示例代码展示了如何使用函数`delMemberGetNewArray`来创建新数组,该函数根据参数`flag`决定是删除还是提取指定成员。同时,博主分享了在C语言中将二维数组作为函数参数时的常见问题和解决方案,强调了正确传递数组长度的重要性。

首先说明一些这个函数的应用场景,比如说你得到的数据是个二维数组,里面的很多成员其实是不必要的,比如说api调用后不必要给别人返回一些用不到的垃圾数据吧,如下是代码。

/*

* delMemberGetNewArray 得到一个新二维数组

* @ $data 原始数组

* @ $del_data mixd 传入的改变因子

* @ $flag bool 为false就是原始数组删除包含因子的成员,true就是提取包含因子的成员

*/

function delMemberGetNewArray(array $data,array $del_data,$flag=false)

{

if(!$data) return false;

if(!$del_data) return false;

$flag_array = array(false,true);

if (!in_array($flag, $flag_array )) {

return false;

}

$new_data = array();

$count = sizeof($del_data);

$org_count = sizeof($data[0]);

if($count >= $org_count) return false;#如果del_data的个数大于或等于数组,返回false

foreach($data as $key => $value)

{

#提取制定成员操作

if($flag){

#提取单个成员操作

if(count($del_data) == 1){

if(array_key_exists($del_data[0],$value))

{

$new_data[$key][$del_data[0]] = $value[$del_data[0]];

if ($count == count($data)-1) {

return $new_data;

}

}else{

return false;

}

}else{

#提取多个成员

$keys = array_keys($value);

$new_array = array_diff($keys,$del_data);

if (count($new_array) == 1) {

$extra_key = $new_array[key($new_array)];

unset($value[$extra_key]);

$new_data[] = $value;

}else{

}

if($key == count($data)-1)

{

return $new_data;

}

}

}else{

#传入数组删除操作

foreach($del_data as $del_value)

{

unset($value[$del_value]);

}

#传入单个变量删除操作

$new_data[$key]= $value;

}

}

return $new_data;

}

其中,$del_data可以是变量也可以是数组,可以灵活使用$flag这个参数,比如二维数组的数据很多,你只想提取你想要的数据,这时你就可以把你想提取的数据(二维数组成员键名)写为一个一位数组,例如$del_data=('name','age'),传入函数并设置为ture,就会生成一个只包含传入数组的新二维数组,如果二维数组的数据你只有一个不想要,就可以传入一个想删除的成员(二维数组成员键名),并设置为false就可以了。

C语言中如何将二维数组作为函数的参数传递

今天写程序的时候要用到二维数组作参数传给一个函数,我发现将二维数组作参数进行传递还不是想象得那么简单里,但是最后我也解决了遇到的问题,所以这篇文章主要介绍如何处理二维数组当作参数传递的情况,希望大家不 ...

C语言二维数组作为函数的参数

前言:今天在实现装配线调度程序时候,用到了二维数组,并将其作为函数的参数.在写程序的时候,遇到一些问题,即二维数组做函数的参数应该如何正确表示.我写程序的错误如下程序所示: #include < ...

C-指针&comma;二级指针&comma;二维数组作为函数参数使用&comma;C语言链表&lpar;详解&rpar;

一级指针 int *p;            //表示定义一个int型(4字节)的指针p &p                 //表示p自身的地址位置 p                  ...

C语言学习笔记 &lpar;005&rpar; - 二维数组作为函数参数传递剖析

前言 很多文章不外乎告诉你下面这几种标准的形式,你如果按照它们来用,准没错: //对于一个2行13列int元素的二维数组 //函数f的形参形式 f(int daytab[2][13]) {...} / ...

C语言二维数组作为函数参数

设有整型二维数组a[3][4]如下:0   1   2   34   5   6   78   9  10  11 它的定义为:    int a[3][4]={{0,1,2,3},{4,5,6,7} ...

C语言中将二维数组作为函数参数来传递

c语言中经常需要通过函数传递二维数组,有三种方法可以实现,如下: 方法一, 形参给出第二维的长度. 例如: #include void func(int n, char ...

C&sol;C&plus;&plus;二维数组的用法

二维数组在存储时按行优先连续存储,数组名是一个二维指针,如 int a[3][2] 中,a 是一个二维指针,而a[0],a[1],a[2]都相当于普通的一位数组的数组名,是一个固定值的指针. 二维数组 ...

C语言基础--二维数组

二维数组概念: 数组中的每一个元素又是一个数组, 那么这个数组就称之为二维数组,二维数组是特殊的一维数组. 二维数组格式: 元素类型 数组名称[一维数组的个数][每个一维数组的元素个数]; 元素类型 ...

随机推荐

RocketMQ原理解析-Remoting

Remoting2. 通信层底层传输协议 RocketMq服务器与客户端通过传递RemotingCommand来交互,通过NettyDecoder,对RemotingCommand进行协议的编码与解码 ...

SQLAlchemy ORM之建表与查询

作了最基本的操作,找找感觉.. #coding=utf-8 from datetime import datetime from sqlalchemy import (MetaData, Table, ...

20151225jquery学习笔记---折叠菜单UI

折叠菜单(accordion),和选项卡一样也是一种在同一个页面上切换不同内容的功能UI.它和选项卡的使用几乎没有什么太大区别,只是显示的效果有所差异罢了.一. 使用 accordion使用 acco ...

android的二进制和十六进制的相互转换工具类&lpar;一&rpar;&colon;

二进制和十六进制的相互转换工具类: package com.gzcivil.utils; public class BinStr { /** * 将二进制转换成16进制 * @param buf * ...

JMeter入门(01)概念和样例

一.概念 JMeter 是一款专门用于功能测试和压力测试的轻量级测试开发平台,实现了许多和互联网相关的网络测试组件,同时还保留着很强的扩展性. JMeter可以用来测试诸如:静态文件,Java Ser ...

Linux常用基本命令&lpar; rmdir&comma; rm&comma; mv &rpar;

1,rmdir,一个很鸡肋的命令,只能删除空目录 ghostwu@dev:~/linux/cp$ ls .txt .txt a a2 a3 ghostwu@dev:~/linux/cp$ rmdir ...

1349&colon; Taking Pebbles (博弈 打表找规律)

1349: Taking Pebbles Submit Page    Summary    Time Limit: 1 Sec     Memory Limit: 128 Mb     Submit ...

Spring&lpar;2&rpar;&colon;Spring Ioc

1.下载spring-framework-3.2.0 完整包下载路径: https://repo.spring.io/webapp/#/artifacts/browse/tree/Properties ...

boost exception jam0&period;exe 异常错误

在Windows 8 64 bit下执行boost_1_53_0的bootstrap.bat出现了jam0.exe执行错误 搜索网页发现需要修改两处文件: tools/build/v2/engine/ ...

同编程语言中,二维数组剔除某些元素有同的处理方法: ### Python 在 Python 中,若要删除二维列表中为空的元素,可使用列表推导式。示例代码如下: ```python oldlist=[[1, 1, 1, 1, 1], [1, 1, 1, 1, 2], [2, 2, 2, 2, 4, 4], [ 8, 8, 8, 8, 8], [16, 16], [], [] , []] newlist=[x for x in oldlist if x] print(newlist) ``` 这段代码通过列表推导式 `[x for x in oldlist if x]` 过滤掉了 `oldlist` 中的空列表元素,最终得到 `newlist`,其中包含空列表元素[^1]。 ### Java 在 Java 里,若要在二维数组中查找并剔除某些元素,可以通过缩小查找范围的方式实现。以下是一个查找元素并根据条件剔除行或列的示例代码: ```java public class FindInPartiallySortedMatrix { public static boolean find(int[] matrix, int rows, int columns, int number) { boolean found = false; // 过滤非法输入 if (matrix.length > 0 && rows > 0 && columns > 0) { int row = 0; int column = columns - 1; // 防止出界 while (row < rows && column >= 0) { if (matrix[row * columns + column] == number) { found = true; break; } else if (matrix[row * columns + column] > number) { column--; } else { row++; } } } return found; } // 测试 public static void main(String[] args) { int[] matrix = {1,2,8,9,2,4,9,12,4,7,10,13,6,78,11,15}; boolean found = find(matrix, 4, 4, 7); System.out.println("found "+found); } } ``` 该代码实现了在部分有序的二维数组中查找指定数字的功能。如果查找的数字数组(新查找范围)的右上角,则每次都能剔除一行或者一列,从而缩小查找范围,直到找到要查找的数字或者查找到为止[^4]。 ### PHP 对于 PHP 二维数组,可使用相关提取函数剔除需要的数据二维数组是指数组中的每一个元素又是一个数组,它是特殊的一维数组过引用中未给出具体的剔除元素代码示例,通常可以通过循环遍历结合条件判断来实现元素的剔除操作[^2]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值