У меня есть этот массив:
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
появляется в моем массиве? Я собираюсь использовать значение для контроля ширины divs
в контейнере flexbox.
Ради забавы:
$count = array_count_values(array_column($array, 'publish'))[1];
publish
ключи1
с использованием индекса [1]
ХОРОШО. Больше удовольствия:
$count = count(array_keys(array_column($array, 'publish'), 1));
publish
ключи1
НОТА: Вы можете пройти true
в качестве третьего аргумента array_keys()
быть более точным и использовать '1'
вместо 1
если 1
s это строки, а не целые числа.
$newArray = array_filter($booksArray, function($bookDet) { if($bookDet["publish"]==1) { return $bookDet; } });
$getCount = count($newArray);
использование array_filter
отфильтровывать только необходимые данные массива и получать их счет.
это может быть самым простым и ориентированным на производительность, так как он не будет зацикливаться.
это должно решить вашу проблему:
$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'];
}
}
надеюсь, это поможет,