我有这个数组:
Array
(
[boks_1] => Array
(
[tittel] => Test
[innhold] => This is a test text
[publish] => 2
)
[boks_2] => Array
(
[tittel] => Test 3
[innhold] => This is a text test
[publish] => 1
)
[boks_3] => Array
(
[tittel] => Kontakt oss
[innhold] => This is a test text
[publish] => 1
)
)
如何使用PHP count()
来计算我的数组中[publish] => 1
出现的次数?我将使用该值来控制flexbox容器中divs
的宽度。
答案 0 :(得分:6)
为了好玩:
$count = array_count_values(array_column($array, 'publish'))[1];
publish
键数组1
[1]
的计数
O.K。更有趣:
$count = count(array_keys(array_column($array, 'publish'), 1));
publish
键数组1
注意:您可能希望将true
作为第三个参数传递给array_keys()
,以便更准确并使用'1'
代替1
如果1
是字符串而不是整数。
答案 1 :(得分:3)
$newArray = array_filter($booksArray, function($bookDet) { if($bookDet["publish"]==1) { return $bookDet; } });
$getCount = count($newArray);
使用array_filter
过滤掉所需的数组详细信息,并计算它。
这可能是最简单的,也是性能导向的,因为它不会循环。
答案 2 :(得分:1)
这可以解决你的问题:
$array = array(); //This is your data sample
$counter = 0; //This is your counter
foreach ($array as $key => $elem) {
if (array_key_exists('publish', $elem) && $elem['publish'] === 1) {
$counter += $elem['publish'];
}
}
希望这有帮助,