Php 如何计算多维数组中非空数组值的个数?
这是上面给出数组值的数组。如您所见,只有一个“tmp_name”字段不是空的,其他字段是空的。我如何检查和计数tmp_名称中是否至少有一个不为空?。我有四个上传图像的输入类型,我想检查至少一个图像应该上传 使用Php 如何计算多维数组中非空数组值的个数?,php,Php,这是上面给出数组值的数组。如您所见,只有一个“tmp_name”字段不是空的,其他字段是空的。我如何检查和计数tmp_名称中是否至少有一个不为空?。我有四个上传图像的输入类型,我想检查至少一个图像应该上传 使用array\u列和array\u过滤器 [pending_work] => Array ( [0] => Array ( [tmp_name] => D:\xa
array\u列
和array\u过滤器
[pending_work] => Array
(
[0] => Array
(
[tmp_name] => D:\xampp\tmp\php4B33.tmp
[error] => 0
[name] => Chrysanthemum.jpg
[type] => image/jpeg
[size] => 879394
)
[1] => Array
(
[tmp_name] =>
[error] => 4
[name] =>
[type] =>
[size] => 0
)
[2] => Array
(
[tmp_name] =>
[error] => 4
[name] =>
[type] =>
[size] => 0
)
[3] => Array
(
[tmp_name] =>
[error] => 4
[name] =>
[type] =>
[size] => 0
)
)
提供最大灵活性的最佳方法是过滤策略:
if(count(array_filter(array_column($array['pending_work'],'tmp_name')))>0){
}
您可以计算其中的条目或使用结果,无论什么 在这种情况下,使用下面的代码
array\u filter
会有所帮助
单独使用函数array\u filter()无法从多维数组中删除空子数组,需要与array\u filter()函数一起使用一个附加函数,以便在PHP中从多维数组中删除空元素
- 函数的作用是:将数组的元素发送到回调函数 功能
- 函数的作用是:使用 回调函数
$array = [
[
'tmp_name' => 'D:\\xampp\\tmp\\php4B33.tmp',
'error' => 0,
'name' => 'Chrysanthemum.jpg',
'type' => 'image/jpeg',
'size' => 879394
],
[
'tmp_name' => null,
'error' => 4,
'name' => null,
'type' => null,
'size' => 0
],
[
'tmp_name]'=> null,
'error' => 4,
'name' => null,
'type' => null,
'size' => 0
],
[
'tmp_name' => null,
'error' => 4,
'name' => null,
'type' => null,
'size' => 0
]
];
$result_arary = array_filter($array, function($arr) {
return !empty($arr['tmp_name']);
});
echo count($result_arary);
print_r($result_arary);
使用foreach在数组上迭代。你知道如何使用foreachforeach
?请先尝试使用一个可以接受的用户名。这会有帮助。
Array
(
[0] => Array
(
[tmp_name] => D:\xampp\tmp\php4B33.tmp
[error] => 0
[name] => Chrysanthemum.jpg
[type] => image/jpeg
[size] => 879394
)
)
$array = [
[
'tmp_name' => 'D:\\xampp\\tmp\\php4B33.tmp',
'error' => 0,
'name' => 'Chrysanthemum.jpg',
'type' => 'image/jpeg',
'size' => 879394
],
[
'tmp_name' => null,
'error' => 4,
'name' => null,
'type' => null,
'size' => 0
],
[
'tmp_name]'=> null,
'error' => 4,
'name' => null,
'type' => null,
'size' => 0
],
[
'tmp_name' => null,
'error' => 4,
'name' => null,
'type' => null,
'size' => 0
]
];
$result_arary = array_filter($array, function($arr) {
return !empty($arr['tmp_name']);
});
echo count($result_arary);
print_r($result_arary);
<?php
$array = array_map('array_filter', $array);
$array = array_filter($array);