Функция PHP array_sum в codeigniter - PullRequest
       1

Функция PHP array_sum в codeigniter

0 голосов
/ 17 октября 2011

Следующий код представляет собой простой оператор выбора, который должен использовать функцию array_sum для возврата значения. Результат должен быть сохранен в массиве, а затем добавлен в функцию SUM:

$this->db->select('period')
     ->from('calcdata');

$query = $this->db->get()->result_array();
$query = array_sum($query);

echo "SUM " . $query . "\n" ;
return $query;

результат "SUM 0", но после добавления всех значений в столбце периода должно быть 147.

Следующий код работает, поэтому я не понимаю, почему массив будет отличаться от этого:

$a = array(2, 4, 6, 8);
echo "sum(a) = " . array_sum($a) . "\n";

Я использую codeigniter для создания массивов, кто-нибудь знает, что здесь не так?

Спасибо

1 Ответ

2 голосов
/ 17 октября 2011

Попробуйте вместо этого вызвать содержимое поля, а не всего массива результатов:

$this->db->select('period')->from('calcdata');

$query = $this->db->get();

$period_array = array();
foreach ($query->result_array() as $row)
{
  $period_array[] = intval($row['period']); //can it be float also?
}
$total = array_sum($period_array);

ОБНОВЛЕНИЕ:

@ uzsolt прав, я почти забыл, что в классе Active Record есть специальная функция, select_sum (); Вы также можете попробовать это, что-то вроде

$this->db->select_sum('period')->get('calcdata');

Цитирование из документов :

$this->db->select_sum();

Записывает часть "SELECT SUM (field)" для вашего запроса. Как с select_max (), вы можете дополнительно включить второй параметр для переименования результирующее поле.

$ this-> db-> select_sum ( 'возраст'); $ query = $ this-> db-> get ('members');
//> Производит: ВЫБРАТЬ СУММУ (возраст) как возраст ОТ членов

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...