正确的观点。我有一个提交多维数组值的表单。通常它会得到这样的东西。
[0] => Array
(
[socialClass] => Myclass
[socialLink] => http://...
[socialName] => Name
)
[1] => Array
(
[socialClass] =>
[socialLink] => MyClass
[socialName] => Name
)
[2] => Array
(
[socialClass] =>
[socialLink] =>
[socialName] =>
)
想法从树中删除不完整的数组,例如[1]
和[2]
,所以我会在过滤器后返回这样的内容。
[0] => Array
(
[socialClass] => Class
[socialLink] => http://...
[socialName] => Name
)
array_filter
在这种情况下不起作用,也可以在其他“递归”定制函数中起作用。我该怎么办?
答案 0 :(得分:3)
以下array_filter
调用自定义过滤器功能应该可以帮到您:
$arr = array_filter($arr, function($sub_arr) {
foreach ($sub_arr as $item)
if ($item === "")
return false;
return true;
});
您将注意到,如果该项的任何子数组值为空字符串,则该项将被删除。
答案 1 :(得分:3)
对于PHP> = 5.3
$myarray = array_filter($myarray, function ($node) {
return count(array_filter($node)) == count($node);
});
答案 2 :(得分:0)
在这种情况下,数组滤镜会很棒:
$result = array_filter($input, function($a){
return isset($a['socialClass'])
&& isset($a['socialLink'])
&& isset($a['socialName'])
&& !empty($a['socialClass'])
&& !empty($a['socialLink'])
&& !empty($a['socialName']);
});
这应该有效!