php - 如何在php中删除多维数组
问题描述
我有一些数组
Array
(
[data] => Array
(
[0] => Array
(
[0] => 1
[1] => MOUSE
[2] => 0
[3] => 1
)
[1] => Array
(
[0] => 2
[1] => LAPTOP
[2] => 0
[3] => 0
)
[3] => Array
(
[0] => 4
[1] => PHONE
[2] => 0
[3] => 0
)
)
)
我需要从数组中删除“0”值,所以结果应该是。
Array
(
[data] => Array
(
[0] => Array
(
[0] => 1
[1] => MOUSE
[2] => 0
[3] => 1
)
)
)
如何使用动态代码将其删除?因为它会执行大量的数组。我在里面呆了好几天
解决方案
这个filterArray
功能应该可以工作。
它只是检查您提交的主数组中的数组(在本例中为 $array["data"]),然后检查每个子数组中的第三个位置,如果值不为零则返回它。
$array = array(
"data" => array(
array(
"0" => 1,
"1" => "MOUSE",
"2" => 0,
"3" => 1
),
array(
"0" => 2,
"1" => "LAPTOP",
"2" => 0,
"3" => 0
),
array(
"0" => 4,
"1" => "PHONE",
"2" => 0,
"3" => 0
)
)
);
function filterArray($elem) {
if (is_array($elem)) {
return (bool) $elem[3];
}
return false;
}
$array["data"] = array_filter($array["data"], "filterArray");
var_dump($array);
这里是您的数组的输出:
array(1) {
["data"] => array(1) {
[0] => array(4) {
[0] => int(1)
[1] => string(5) "MOUSE"
[2] => int(0)
[3] => int(1)
}
}
}
推荐阅读
- amazon-web-services - 根据政策无效:额外的输入字段
- apache-kafka - 查找kafka集群中的主题总数
- r - 在R中计算百分比并制作ggplot条形图
- node.js - 删除并重命名 npm 包后,如何使用旧的打字稿打字?
- c++ - PlayFunction 在 DLL 中不起作用,但在独立 exe 中起作用
- r - 将显示变量的第一个和最后一个值的数据框重塑为显示该变量的每个值的数据框
- omnet++ - 在venes_hetvnet 中运行测试命令时出错
- jquery - 点击动态加载的div里面
- 元素不起作用
- angular - Angular Router anchorScrolling 片段未创建正确的 URL
- sql-server - 如何将报表服务器订阅 SQL 代理作业名称链接到它正在运行的报表的名称