- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我可以以及如何使用 PHP 的 array_filter
来过滤以下数组结构中的空白/空条目?
来自:该数组来自使用 Fetch BOTH 的 PDO 调用,因此在这种情况下数字值和命名值始终相等。
Array
(
[2400] => Array
(
[0] => Array
(
[value] => 7
[0] => 7
)
[1] => Array
(
[value] => 61
[0] => 61
)
[2] => Array
(
[value] => 42
[0] => 42
)
[3] => Array
(
[value] =>
[0] =>
)
)
)
致:
Array
(
[2400] => Array
(
[0] => Array
(
[value] => 7
[0] => 7
)
[1] => Array
(
[value] => 61
[0] => 61
)
[2] => Array
(
[value] => 42
[0] => 42
)
)
)
我已经尝试过
array_filter
array_filter(array, function($f){ ??? })
不太确定从这里去哪里...我打算 foreach 数组来深入研究它,但是如何这会影响通过 array_filter
的条目吗? true/false 返回不会带来整个 [2400] 数组部分吗?这让我很困惑。请对问题提出改进建议
最佳答案
我认为仅使用 array_filter
无法完成此操作函数,因为有时您需要修改数组元素,但 array_filter
函数仅允许决定是否应排除该元素。
例如,主数组中索引为 2400 的元素应包含在结果集中,但应修改其内容。
我写了一个简单的函数来做到这一点,希望它能有所帮助。好吧,你可以用它来获取灵感。这对我来说也是一个有趣的挑战。
下面是我的函数和一些测试。
<?php
function deepFilter(array $array)
{
// Formally this is not need because if array is empty then $filteredArray will also be empty
// but it simplifies the algorithm
if (empty($array)) {
return [];
}
$filteredArray = [];
foreach ($array as $key => $value) {
if (is_array($value) && !empty($value)) {
$value = deepFilter($value);
}
if (!empty($value)) {
$filteredArray[$key] = $value;
}
}
return $filteredArray;
}
$testArray1 = [
2400 => [
0 => [
'value' => 7,
0 => 7,
],
1 => [
'value' => 61,
0 => 61,
],
2 => [
'value' => 42,
0 => 42,
],
3 => [
'value' => null,
0 => null,
]
]
];
$testArray2 = [
2400 => [
0 => [
'value' => 7,
0 => 7,
],
1 => [
'value' => 61,
0 => 61,
],
2 => [
'value' => 42,
0 => 42,
],
3 => null
],
3243 => [
0 => [
'value' => 7,
0 => null,
],
1 => [
'value' => null,
0 => 61,
],
2 => [
'value' => 42,
0 => 42,
],
3 => null
]
];
var_export(deepFilter($testArray1));
var_export(deepFilter($testArray2));
这个想法非常简单。
如果您发现任何错误或者它是否适合您,请告诉我。
关于 "simple"多级数组上的 PHP Array_filter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37056326/
这个问题在这里已经有了答案: Using `$this` in an anonymous function in PHP pre 5.4.0 (5 个答案) 关闭 9 年前。 如果要执行以下操作:
array_filter — Filters elements of an array using a callback function array array_filter ( array $in
我正在使用 array_filter 来做这样的事情: function endswithy($value) { return (substr($value, -1) == 'y'); } $
我正在尝试对对象数组使用 array_filter,并使用 foo 类的公共(public)方法作为回调。我不知道该怎么做。 我得到了这个结果:Fatal error: Using $this whe
这个问题在这里已经有了答案: Is there a function to extract a 'column' from an array in PHP? (15 个答案) 关闭 9 天前。 我试
我正在使用 array_filter在 PHP 中,当名为 type 的键的值与特定字符串匹配时,拆分包含多个数组的数组。这是它的样子: 样本数组 $arr[] = Array ( [0] =
我有两个数组: $arr1 = array('a' => 10, 'b' => 20); $arr2 = array('a' => 10, 'b' => 20, 'c' => 30); 如何使用 ar
我有一个包含一些关联数组的索引数组,我应用了一个简单的 $my_arr = array_filter($my_arr, function($obj) { return $obj["value"
我得到了这个名为 $files[] 的多数组,它由如下键和值组成: [0] => Array ( [name] => index1.php [path] => http://local
我有以下代码: function lower_than_10($i) { return ($i < 10); } 我可以用来过滤这样的数组: $arr = array(7, 8, 9, 10,
我在 php 中使用 array_filter: $new_array = array_filter($updated, "check_if_value_is_null_or_false"); fun
我可以以及如何使用 PHP 的 array_filter 来过滤以下数组结构中的空白/空条目? 来自:该数组来自使用 Fetch BOTH 的 PDO 调用,因此在这种情况下数字值和命名值始终相等。
这个问题在这里已经有了答案: Reference: What is variable scope, which variables are accessible from where and what
我来自 JS 世界,无法理解这段代码: function getCountryName($code, $codes){ print_r($code); array_filter( $c
我对array_filter很熟悉,想往功能上想,但我想知道有没有办法保留被丢弃的值?例如,如果我有一个像这样的数组: 2; }); 结果将是:array( 3, 4 )。 有没有办法保留丢弃的值
我来自 JS 世界,无法理解这段代码: function getCountryName($code, $codes){ print_r($code); array_filter( $c
我对array_filter很熟悉,想往功能上想,但我想知道有没有办法保留被丢弃的值?例如,如果我有一个像这样的数组: 2; }); 结果将是:array( 3, 4 )。 有没有办法保留丢弃的值
一旦条件满足数组的一个元素,我们可以中断回调的执行吗? 例如。 $a = array(1,2,3,4,5); foreach($a as $val){ if ($val == 3){
这个问题在这里已经有了答案: array_count_values() with objects as values (3 个答案) 关闭 4 个月前。 如何防止为我要搜索的每个值重复相同的代码块?
我的方法的签名如下所示: public function ProgramRuleFilter(&$program, $today=null) { 当我这样调用它时, $programs = array
我是一名优秀的程序员,十分优秀!