Page 1 of 1

array in class

Posted: Mon Feb 19, 2018 5:03 pm
by explozen
Здравейте :)
Някой може ли да ми удари едно рамо със следната задача:
https://imgur.com/a/Cf6t9

Тези масиви искам да ги сложа във клас и накрая да ги сумирам.
Ще съм много благодарен ако някой хелпне :)

Re: array in class

Posted: Mon Feb 19, 2018 7:03 pm
by dakata__92
explozen wrote:Здравейте :)
Някой може ли да ми удари едно рамо със следната задача:
https://imgur.com/a/Cf6t9

Тези масиви искам да ги сложа във клас и накрая да ги сумирам.
Ще съм много благодарен ако някой хелпне :)
Дай код, и масива по възможност поне част от него, за да ти помогнем.

Posted: Mon Feb 19, 2018 8:24 pm
by dakata__92
[php]
<?php
$cars = [
7, 5, 150,
[
4, 9, 2,
[
10, 3, 6
],
43
],
];

$sum = 0;
foreach ($cars as $car) {
if (is_array($car)) {
foreach ($car as $car2) {
if (is_array($car2)) {
$sum += array_sum($car2);
} else {
$sum += $car2;
}
}
} else {
$sum += $car;
}
}

print $sum;
[/php]

Posted: Mon Feb 19, 2018 8:28 pm
by explozen
dakata__92 wrote:[php]
<?php
$cars = [
7, 5, 150,
[
4, 9, 2,
[
10, 3, 6
],
43
],
];

$sum = 0;
foreach ($cars as $car) {
if (is_array($car)) {
foreach ($car as $car2) {
if (is_array($car2)) {
$sum += array_sum($car2);
} else {
$sum += $car2;
}
}
} else {
$sum += $car;
}
}

print $sum;
[/php]
Заслужи много бири!!!

Posted: Tue Feb 20, 2018 12:36 pm
by lam3r4370
$sum = array_sum(iterator_to_array(new RecursiveIteratorIterator(new RecursiveArrayIterator($array)))).

Не съм го тествал.

Posted: Sun Mar 04, 2018 6:46 pm
by pix3l
Виждам, че темата е стара и е отговорено, но ако реалният масив ще е толкова голям, можеш да ползваш рекурсия:

[php]
function traverse(array $array) {
$sum = 0;

foreach ($array as $element) {
if (is_numeric($element)) {
$sum += $element;
} elseif (is_array($element)) {
$sum += traverse($element);
}
}

return $sum;
}
[/php]