Сложить числа в массиве php

Есть строка

$all_prices = array($data_platforms__integration_cost_agreed[0]->integration_cost);

Она выводит это через var_dump($all_prices)

array(1) {
  [0]=>
  string(5) "34634"
}
array(1) {
  [0]=>
  string(6) "200000"
}

К БД обращаюсь так, чтобы вывести числа 34634 и 200000 - это цены

$data_platforms__integration_cost_agreed = DataPlatformsForm::find()
    ->select('integration_cost')
    ->where(['id_blogger' => $bloggers->id])
    ->all();

Вопрос

Как мне суммировать эти числа 34634 и 200000?

Метод в контролере

public function actionIndex()
{
    $bloggers_db = BloggerForm::find()->orderBy('id desc')->all();

    // Вытаскиваем клиента который привязан к проекту
    $node_project_klient = NodeProjectKlient::find()->Where(['id_project' => Yii::$app->request->get("project")])->one();

    $data_platforms_db = DataPlatformsForm::find()->all();

    // Выводим всех клиентов которые привязаные к менеджеру
    $manager_node_klient_db = User::find()
        ->leftJoin('node_klient_manager', '`node_klient_manager`.`id_klient` = `user`.`id`')
        ->where(['node_klient_manager.id_manager' => Yii::$app->user->identity->id])
        ->orderBy('id desc')
        ->all();

    // Выводим всех блогеров по проекту (нейтральные)
    $bloggers_neutral_projects_db = BloggerForm::find()
        ->leftJoin('node_project_blogger', '`node_project_blogger`.`id_blogger` = `bloggers`.`id`')
        ->Where([
            'node_project_blogger.id_project' => Yii::$app->request->get('project'), 
            'node_project_blogger.long_list' => 0,
            'node_project_blogger.agreed' => 0,
        ])
        ->orderBy('id desc')
        ->all();

    // Выводим всех блогеров по проекту (отклонённые)
    $bloggers_rejected_projects_db = BloggerForm::find()
        ->leftJoin('node_project_blogger', '`node_project_blogger`.`id_blogger` = `bloggers`.`id`')
        ->Where([
            'node_project_blogger.id_project' => Yii::$app->request->get('project'), 
            'node_project_blogger.long_list' => 2,
            'node_project_blogger.agreed' => 0,
        ])
        ->orderBy('id desc')
        ->all();

    // Выводим всех блогеров по проекту (согласованные)
    $bloggers_approved_projects_db = BloggerForm::find()
        ->leftJoin('node_project_blogger', '`node_project_blogger`.`id_blogger` = `bloggers`.`id`')
        ->Where([
            'node_project_blogger.id_project' => Yii::$app->request->get('project'), 
            'node_project_blogger.long_list' => 1,
            'node_project_blogger.agreed' => 0,
        ])
        ->orderBy('id desc')
        ->all();

    // Выводим блогеров из таблицы связей для обновлений статусов
    $node_project_blogger_db = NodeProjectBlogger::find()->where(['id_project' => Yii::$app->request->get('project')])->all();

    if ($this->request->isPost) 
    {
        // Обработка статусов блогеров по id
        foreach ($node_project_blogger_db as $node_project_blogger)
        {
            // ========================== LOG CREATE ================================= //

                $str_log = '================================================';

                $array = array(
                        'Controller' => 'Manager',
                        'Method' => 'Index',
                        'id_project' => Yii::$app->request->get('project'),
                        'id_blogger' => $node_project_blogger->id_blogger,
                        'long_list'  => $this->request->post('status_'.$node_project_blogger->id_blogger)
                );
                                 
                $log = date('Y-m-d H:i:s') . ' ' . print_r($array, true);
                file_put_contents('../logs/funnel_manager.txt', PHP_EOL . $str_log . PHP_EOL . $log . PHP_EOL . $str_log, FILE_APPEND);

            // ======================== END LOG CREATE =============================== //


            // Массовое редактирование статусов
            // BloggerForm::updateAll(['long_list_status_manager' => 0], ['id' => array('11','30','31')]);

            NodeProjectBlogger::updateAll(
                ['long_list' => $this->request->post('status_'.$node_project_blogger->id_blogger)], 
                [
                    'id_project'    => Yii::$app->request->get('project'),
                    'id_blogger'    => $node_project_blogger->id_blogger,
                    //'id_blogger'  => array('1','2','6')
                ]);


            // ------ ИЗМЕНЕНИЕ БЮДЖЕТА ------ //

            // Биндим всех блоггеров
            foreach ($bloggers_db as $bloggers)
            {
                // Если статус "Согласованные"
                if ($this->request->post('status_'.$bloggers->id) == 1)
                {
                    // Выводим сумму интеграции
                    $data_platforms__integration_cost_agreed = DataPlatformsForm::find()
                        ->select('integration_cost')
                        ->where(['id_blogger' => $bloggers->id])
                        ->all();

                    // Все цены блогеров в массиве
                    //$all_prices = array('id_blogger_'.$bloggers->id => $data_platforms__integration_cost_agreed[0]->integration_cost);
                    $all_prices = array($data_platforms__integration_cost_agreed[0]->integration_cost);





                    $summ = 0;
                    foreach($all_prices as $price)
                    {
                        $summ += floatval($price[0]);
                    }

                    echo $summ;
                


                    // echo '<pre>';
                    // var_dump($all_prices);
                    // echo '</pre>';
                }
            }

                die;

        }
        
        return $this->redirect(['?project='.Yii::$app->request->get('project')]);
    }

    return $this->render('index', [
        'bloggers_db'                    => $bloggers_db,
        'bloggers_neutral_projects_db'   => $bloggers_neutral_projects_db,
        'bloggers_approved_projects_db'  => $bloggers_approved_projects_db,
        'bloggers_rejected_projects_db'  => $bloggers_rejected_projects_db,
    ]);
}

Ответы (1 шт):

Автор решения: Михаил Ребров

Предположу, что в $all_prices лежит массив, внутри которого два вложенных массива, в которых под нулевыми индексами лежат цены, указанные в строковом формате

тогда сумму можно посчитать так:

$summ = intval($all_prices[0][0]) + intval($all_prices[0][1]);

Если же количество цен, которые нужно посчитать больше двух, то это можно сделать в цикле:

$summ = 0;
foreach($all_prices as $price){
    $summ += intval($price[0]);
}

Замечание №1:

Выражение

$summ += intval($price[0]);

позволяет увеличить значение переменной указанной слева, на значение указанное в правой части выражения

оно равносильно следующему:

$summ = $summ + intval($price[0]);

Замечание №2:

Функция intval() приводит строку к целочисленному значению.
Если подразумевается, что там будут не только целые числа - используйте вместо нее floatval() - она приведет строку к значению числа с плавающей точкой

UPDATE

  1. до итерации всех блогеров определяем массив в котором будут хранится цены
  2. в каждой итерации кладём цену в массив
  3. после чего суммируем и выводим все цены
$all_prices = array();

// Биндим всех блоггеров
foreach ($bloggers_db as $bloggers)
{
    // Если статус "Согласованные"
    if ($this->request->post('status_'.$bloggers->id) == 1)
    {
        // Выводим сумму интеграции
        $data_platforms__integration_cost_agreed = DataPlatformsForm::find()
            ->select('integration_cost')
            ->where(['id_blogger' => $bloggers->id])
            ->all();

        // Кладем цену в массив
        $all_prices[]=floatval($data_platforms__integration_cost_agreed[0]->integration_cost);
    }
}
$summ = 0;
foreach($all_prices as $price)
{
    $summ += $price;
}
echo $summ;
die();
→ Ссылка