Задать вопрос
StaDi
@StaDi
Курьер в it отделе

Как посчитать повторяющиеся значения в переменной?

Туплю, не могу посчитать.

Есть массив:
$board[] = array("name" => "1" , "length" => 100 , "count" => 10);
$board[] = array("name" => "2" , "length" => 130 , "count" => 7);
$board[] = array("name" => "3" , "length" => 100 , "count" => 2);
$board[] = array("name" => "4" , "length" => 100 , "count" => 7);


Нужно у всех одинаковых длин (length) сложить количество (count)
Спасибо!
  • Вопрос задан
  • 2317 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 1
StaDi
@StaDi Автор вопроса
Курьер в it отделе
Спасибо всем за ответы.
Вот моё решение

$lengths = array();
for($i = 0 ; $i < count($board); ++$i)
$length[$board[$i]["length"]]["count"]  +=  $board[$i]["count"];
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
wscms
@wscms
В лоб
$lengths = array();
foreach ($board as $item)
    $lengths[$item['length']] = isset($lengths[$item['length']]) ? ($lengths[$item['length']] + $item['count']) : $item['count'];
Ответ написан
Комментировать
Slavenin999
@Slavenin999
программист php/erlang/elixir/js
Как-то так:
$counts = array();
foreach ($array as $value)
{
	$count = $value['count'];
	foreach ($array as $key => $v)
	{
		if($value['length'] == $v['length'])
		{
			$count += $v['count'];
			unset($array[$key]);
 		}
	}
        $counts[] = $count;
}
Ответ написан
Комментировать
IgorMann
@IgorMann
Руковожу марке́тингом
function array_sum($k, $v){
 $a[$v['length']] += $v['count'];
return $a;
}
$new_array = array_map('array_sum', $board);
print_r($new_array);
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы