За последние 24 часа нас посетили 21724 программиста и 1011 роботов. Сейчас ищут 668 программистов ...

Вопрос по массивам

Тема в разделе "PHP для новичков", создана пользователем Alexralex, 7 июл 2022.

  1. Alexralex

    Alexralex Активный пользователь

    С нами с:
    4 дек 2012
    Сообщения:
    7
    Симпатии:
    0
    Добрый день!
    Подскажите, плиз!
    Есть некий массив:

    $arr_1 = [
    [
    'name' => 'Michael',
    'age' => 26,
    'rab' => 'akter',
    'cat' => 'new'
    ],
    [
    'name' => 'Igor',
    'age' => 28,
    'rab' => 'akter',
    'cat' => 'prof'
    ],
    [
    'name' => 'Alex',
    'age' => 32,
    'rab' => 'akter',
    'cat' => 'vip'
    ],
    [
    'name' => 'Fedor',
    'age' => 34,
    'rab' => 'akter',
    'cat' => 'vip'
    ],
    [
    'name' => 'Artur',
    'age' => 31,
    'rab' => 'akter',
    'cat' => 'vip'
    ]
    ];

    Я пытаюсь подсчитать количество участников и средний возраст. Пишу следующий код:

    foreach($arr_1 as $key => $value)
    echo $value1['age']."<br/>";
    echo "sum(a) = ". array_sum($value). '<br>';

    foreach($arr_1 as $arr_1)
    $ages_sum = $ages_sum + $arr_1['age'];
    echo $ages_sum. '<br>';
    echo count ($value);

    В итоге общий возраст получаю, но вместо числа сотрудников (5), получаю число ключей - 4. Как получить число сотрудников? Где я ошибаюсь?
     
  2. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.553
    Симпатии:
    1.754
    А посмотреть, что в array_sum передаётся. И вообще, понимание цикла foreach на нулевом уровне, перечитай
     
  3. Alexralex

    Alexralex Активный пользователь

    С нами с:
    4 дек 2012
    Сообщения:
    7
    Симпатии:
    0
    Так всё всегда начинается с нуля:) Только вот боюсь, что с нулем и останусь.
     
  4. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.748
    Симпатии:
    1.321
    Адрес:
    Лень
    count ( массив )

    результат = ceil ( array_sum ( array_column ( массив, age ) ) / count ( массив ) )
     
  5. Alexralex

    Alexralex Активный пользователь

    С нами с:
    4 дек 2012
    Сообщения:
    7
    Симпатии:
    0
    Это я пробую давно, здесь и затык. Нужно количество массивов в массиве, если говорить совсем неправильно.
    count($arr_1) - стабильно выдаёт 4.
    Код
    foreach($arr_1 as $arr_1)
    $ages_sum = $ages_sum + $arr_1['age'];
    echo $ages_sum. '<br>';
    Дает сумму значений. По логике, нужно count(arr_1), но получается 4, число ключей в одном массиве, а не количество массивов (их - 5).
     
  6. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.748
    Симпатии:
    1.321
    Адрес:
    Лень
    каким макаром 4, если у тебя 5 тел в массиве ? что за бред сочиняешь
    --- Добавлено ---
    Что, лол ?
    --- Добавлено ---
    https://onlinephp.io/c/b4439
    --- Добавлено ---
    Нафиг цитируешь снова свой код ? o_O
    нумерация массива !== кол-во элементов в нем
     
  7. Alexralex

    Alexralex Активный пользователь

    С нами с:
    4 дек 2012
    Сообщения:
    7
    Симпатии:
    0
    В итоге получилось следующее:

    $s = count($arr_1);
    echo $s;
    foreach($arr_1 as $arr_1)
    $ages_sum = $ages_sum + $arr_1['age'];
    echo $ages_sum. '<br>';
    echo $ages_sum/$s;
    Результат тот, который и нужен. Пусть несовершенный вариант, но со всеми тонкостями, Бог даст, разберусь потом.Спасибо за помощь!
     
  8. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.748
    Симпатии:
    1.321
    Адрес:
    Лень
    зачем ты обращаешься во форум в итоге, если игнорируешь что пишут и талдычишь о своем ? o_O
     
  9. Alexralex

    Alexralex Активный пользователь

    С нами с:
    4 дек 2012
    Сообщения:
    7
    Симпатии:
    0
    Если что не так, извините. Я не волшебник, я только учусь.