felony13twelve
@felony13twelve

Как получить количество значений с 1 в массиве?

Доброго утра, всем! Наверное для вас это покажется более тупой вопрос, но я не помню, ибо не знал даже как. В общем, вернёмся к тема!
Есть вот такой массив
$arr = array(1, 46, 2, 1, 1, 737);
Как получить количество значений с "1"?
Попробовал несколько кодов, на которые хватил мой маленький, тупой мозг :D, но к сожалению не работает, то выводит ошибку, то выводит не то. В общем дрянь :)

Если кому-то интересно как я это пробовал, то скину код, но это если вам нужно :)
  • Вопрос задан
  • 94 просмотра
Решения вопроса 1
OxCom
@OxCom
возможно не оптимально, но
$arr = array(1, 46, 2, 1, 1, 737);
var_dump(\count(\array_filter($arr, function($v) {return $v === 1;})));

или в цикле посчитать:
<?php
$arr = array(1, 46, 2, 1, 1, 737);
$cnt = 0;
foreach ($arr as $v) {
    $cnt += $v === 1 ? 1 : 0;
}
var_dump($cnt);
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
@FanatPHP
Чебуратор тега PHP
Бросай это дело. Серьёзно.
Это не наезд. Это диагноз.
Ты грызёшь программирование явно уже не меньше года, и это не первый твой акк на тостере.
И при этом не в состоянии алгоритмизировать простейшую операцию, просто элементарную, цикл + условный переход. Проще уже некуда.
программирование - явно не твоё. Не надо мучать себя и других. Найди себе профессию которая больше соответствует твоим способностям.
Ответ написан
Kasperenysh
@Kasperenysh
Рецидив в особо острой форме))
почитать тут

$arr = array(1, 46, 2, 1, 1, 737);

function sum($carry, $item)
{
    if($item == 1) $carry += 1;
    return $carry;
}

var_dump(array_reduce($arr, "sum"));
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы