Array
(
[0] => Array
(
[1] => 2011-03-01
[2] => 666.00
[4] => Хуй
)
[1] => Array
(
[1] => 2011-03-01
[2] => 40.00
[4] => Пизда
)
[2] => Array
(
[1] => 2011-03-01
[2] => 80.00
[4] => Хуй
)
[3] => Array
(
[1] => 2011-03-01
[2] => 22.33
[4] => Пизда
)
[4] => Array
(
[1] => 2011-03-03
[2] => 127.00
[4] => Хуй
)
[5] => Array
(
[1] => 2011-03-08
[2] => 10.00
[4] => Хуй
)
[6] => Array
(
[1] => 2011-03-08
[2] => 666.00
[4] => Хуй
)
[7] => Array
(
[1] => 2011-03-08
[2] => 30.00
[4] => Хуй
)
[8] => Array
(
[1] => 2011-03-10
[2] => 123.00
[4] => Пизда
)
[9] => Array
(
[1] => 2011-03-10
[2] => 15.00
[4] => Пизда
)
)
Форум → Программирование → PHP для идиотов → выборка из массива
выборка из массива
-
Памажите, ваще в вашем пхп не рублю .вобщем есть у меня массифчег с данными мне нужно сосчитать сумму [2] за день [1] изабрёл велосипед с ифами но имхо это уебанство какоетоСпустя 96 сек.да и чот он нехуя не пашед даже код не выложу надо искать нормальный подход
-
10 марта 2011 г. 20:10, спустя 7 минут 4 секунды
$result = 0;
foreach ($myArray as $data) {
$result += $data[2];
}
так ?Спустя 43 сек.а сори, условие не доконца дочиталСпустя 168 сек.$result = array();
foreach ($myArray as $data) {
if (isset($result[$data[1]])) {
$result[$data[1]] += $data[2];
} else {
$result[$data[1]] = $data[2];
}
} -
-
-
11 марта 2011 г. 14:12, спустя 17 часов 40 минут 37 секунд
этакий самодельный SQL select sum(n) :)))
<?php
$source = array(
array('2011-03-01', 666.00, 'Хуй'),
array('2011-03-01', 40.00, 'Пизда'),
array('2011-03-01', 80.00, 'Хуй'),
array('2011-03-01', 22.33, 'Пизда'),
array('2011-03-03', 127.00, 'Хуй'),
array('2011-03-08', 10.00, 'Хуй'),
array('2011-03-08', 666.00, 'Хуй'),
array('2011-03-08', 30.00, 'Хуй'),
array('2011-03-10', 123.00, 'Пизда'),
array('2011-03-10', 15.00, 'Пизда')
);
$dates = array_unique(array_map(create_function('$item', '{ return $item[0]; }'), $source));
$sums = array();
foreach ($dates as $date) {
$allOnDate = array_filter($source, create_function('$item', '{ return $item[0] == \'' . $date . '\'; }'));
$sumOnDate = array_reduce($allOnDate, create_function('$v, $w', '{ $v += $w[1]; return $v; }'), 0);
$sums[$date] = $sumOnDate;
}
var_export($sums);ιιlllιlllι унц-унц -
11 марта 2011 г. 9:34, спустя 19 часов 21 минуту 17 секунд
artoodetoo, тебе не кажется что мой вариант слегка читабельнее ?))) -
11 марта 2011 г. 14:12, спустя 4 часа 38 минут 16 секунд
согласен. это просто блажь - сделать по максимуму на array_*ιιlllιlllι унц-унц -
18 августа 2012 г. 23:23, спустя 526 дней 8 часов 10 минут
ага,мне так говорятт,кагда собираються меня бросить
Пожалуйста, авторизуйтесь, чтобы написать комментарий!