PHP计算数组中非空值的数量
我有这个阵列:PHP计算数组中非空值的数量,php,arrays,Php,Arrays,我有这个阵列: $auflistung = array ($_POST['jacken'], $_POST['hosen'], $_POST['oberteil'], $_POST['tasche'], $_POST['schuhe'], $_POST['accessoireschmuck1'], $_POST['accessoireschmuck2'], $_POST['accessoireschmuck3'], $_POST['accessoireschmuck4'], $_POST['ac
$auflistung = array ($_POST['jacken'], $_POST['hosen'], $_POST['oberteil'], $_POST['tasche'], $_POST['schuhe'], $_POST['accessoireschmuck1'], $_POST['accessoireschmuck2'], $_POST['accessoireschmuck3'], $_POST['accessoireschmuck4'], $_POST['accessoireschmuck5'], $_POST['accessoireschmuck6']);
它包含例如:
array(11) {
[0]=> string(10) "1288023365"
[1]=> string(10) "1246154493"
[2]=> string(0) ""
[3]=> string(10) "1293143681"
[4]=> string(10) "1293143242"
[5]=> string(0) ""
[6]=> string(0) ""
[7]=> string(0) ""
[8]=> string(0) ""
[9]=> string(0) ""
[10]=> string(0) ""
}
现在我需要aviable值的数量。在本例中,4
我试过:回声计数($auflistung);但是结果包括所有的空值,所以是11。有什么想法吗?用于迭代每个值。如果不提供回调,则会删除其值==false的任何键。对于PHP来说,Empty非常接近false
echo count(array_filter($auflistung));
关于从非空值创建数组,ZombieHunter有一个很好的观点。这是一种干净的方法
$keys=array(
'jacken',
'hosen',
'oberteil',
'tasche',
'schuhe',
'accessoireschmuck1',
'accessoireschmuck2',
'accessoireschmuck3',
'accessoireschmuck4',
'accessoireschmuck5',
);
$auflistung=array();
foreach ($keys as $key){
if (isset($_POST[$key]) && !empty($_POST[$key])) $auflistung[]=$_POST[$key];
}
echo count($auflistung);
用于迭代每个值。如果不提供回调,则会删除其值==false的任何键。对于PHP来说,Empty非常接近false
echo count(array_filter($auflistung));
关于从非空值创建数组,ZombieHunter有一个很好的观点。这是一种干净的方法
$keys=array(
'jacken',
'hosen',
'oberteil',
'tasche',
'schuhe',
'accessoireschmuck1',
'accessoireschmuck2',
'accessoireschmuck3',
'accessoireschmuck4',
'accessoireschmuck5',
);
$auflistung=array();
foreach ($keys as $key){
if (isset($_POST[$key]) && !empty($_POST[$key])) $auflistung[]=$_POST[$key];
}
echo count($auflistung);
为什么不修复空元素的原点并创建只有非空值的数组?@ZombieHunter有一个很好的观点。我已经扩展了我的答案。为什么不修复空元素的来源并创建只有非空值的数组呢?@ZombieHunter有一个很好的观点。我已经扩展了我的答案。