【问题标题】:PHP count the amount of not empty values of arrayPHP计算数组非空值的数量
【发布时间】:2013-10-31 00:23:18
【问题描述】:

我有这个数组:

$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) ""
}

现在我需要可用值的数量。在这种情况下 4

我试过:回声计数($auflistung);但结果包括所有空值,所以 11. 有什么想法吗?

【问题讨论】:

  • 为什么不修复空元素的原点并创建只有非空值的数组?
  • @ZombieHunter 有一个很好的观点。我已经扩展了我的答案。

标签: php arrays


【解决方案1】:

使用array_filter 迭代每个值。如果您不提供回调,则 value == 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);

【讨论】:

    猜你喜欢
    • 2017-11-20
    • 2017-06-05
    • 2017-06-10
    • 1970-01-01
    • 1970-01-01
    • 2011-05-24
    • 2020-12-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多