Подсчитать значение ключа в массиве

У меня есть этот массив:

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.

3

Решение

Ради забавы:

$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 если 1s это строки, а не целые числа.

6

Другие решения

$newArray = array_filter($booksArray, function($bookDet) { if($bookDet["publish"]==1) { return $bookDet; } });
$getCount = count($newArray);

использование array_filter отфильтровывать только необходимые данные массива и получать их счет.

это может быть самым простым и ориентированным на производительность, так как он не будет зацикливаться.

3

это должно решить вашу проблему:

$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'];
}
}

надеюсь, это поможет,

1
По вопросам рекламы [email protected]