У меня есть этот массив:
$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
Я попробовал: echo count ($ auflistung); но результат включает все и пустые значения, поэтому 11. Любые идеи?
Используйте array_filter для повторения каждого значения. Если вы не предоставляете обратный вызов, любой ключ, значение которого == false, будет удален. Пустой достаточно близок к false для PHP.
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);