array in class

C++ JAVA
Post Reply
explozen
Турист
Турист
Posts: 413
Joined: Thu Feb 10, 2011 7:15 pm
Answers: 13

array in class

Post by explozen » Mon Feb 19, 2018 5:03 pm

Здравейте :)
Някой може ли да ми удари едно рамо със следната задача:
https://imgur.com/a/Cf6t9

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

User avatar
dakata__92
Web-tourist
Web-tourist
Posts: 3262
Joined: Tue Aug 02, 2011 7:24 pm
Answers: 126

Re: array in class

Post by dakata__92 » Mon Feb 19, 2018 7:03 pm

explozen wrote:Здравейте :)
Някой може ли да ми удари едно рамо със следната задача:
https://imgur.com/a/Cf6t9

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

User avatar
dakata__92
Web-tourist
Web-tourist
Posts: 3262
Joined: Tue Aug 02, 2011 7:24 pm
Answers: 126

Post by dakata__92 » Mon Feb 19, 2018 8:24 pm

[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]

explozen
Турист
Турист
Posts: 413
Joined: Thu Feb 10, 2011 7:15 pm
Answers: 13

Post by explozen » Mon Feb 19, 2018 8:28 pm

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]
Заслужи много бири!!!

User avatar
lam3r4370
Шаман
Шаман
Posts: 3424
Joined: Wed Aug 20, 2008 4:12 pm
Answers: 131

Post by lam3r4370 » Tue Feb 20, 2018 12:36 pm

$sum = array_sum(iterator_to_array(new RecursiveIteratorIterator(new RecursiveArrayIterator($array)))).

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

pix3l
Нов
Нов
Posts: 161
Joined: Sat Oct 08, 2016 2:31 pm

Post by pix3l » Sun Mar 04, 2018 6:46 pm

Виждам, че темата е стара и е отговорено, но ако реалният масив ще е толкова голям, можеш да ползваш рекурсия:

[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]

Post Reply