Autor Zpráva
_fantomas
Profil
Ahoj, potreboval by som poradiť.
Potrebujem spočítať hodnoty v poli
  $hodnoty = array(
    1,
    8,
    2,
    4
  );

Potrebujem niečo čo mi spočíta to pole takže výsledok by mal byť 15.
Hľadal som niečo ako array count values ale vždy som našiel niečo iné. Neviete ako by som mohol pole spočítať?
juriad
Profil
array_sum
Chceš sečít ne spočítat hodnoty.
_fantomas
Profil
Lenže ja tu mám problém

Pole vyzera takto

array(1) { [0]=> float(2431) } 

2431 array(1) { [0]=> float(193.5) } 

V php sa snažim vypísať súčin hodnôt

        $s = array($results[$result]["price"]*$pole['quantity']);
        var_dump($s);
        echo array_sum($s);
        

Ale namisto súčinu mi to vypíše len poslednú hodnotu čiže 193.5
anonymníí
Profil *
_fantomas:
Ukazuješ jiné pole. To, které máš dumpnuté nahoře, nemá žádné klíče price a quantity.

Jak vypadá $results a $pole? Co je v $result?
_fantomas
Profil
$results = DatabaseTool::fetchAll('SELECT * FROM `cart` WHERE `owner`=:owner', array(':owner' => USER_SESSION));

    <?php foreach ($results as $result => $pole) : ?>
        <tr>
            <td><?=$pole['id'];?></td>
            <td><?=$pole['nameproduct'];?></td>
            <td><?=$pole['price'];?> €</td>
            <td><?=$pole['quantity'];?></td>
        </tr>
<?php

        $s = array($results[$result]["price"]*$pole['quantity']);
        var_dump($s);
        echo '<br /><br />';
        echo array_sum($s);
?>
<?php endforeach ?>
abc
Profil
Jednoduše si to v tom foreachi přičítej:

$results = DatabaseTool::fetchAll('SELECT * FROM `cart` WHERE `owner`=:owner', array(':owner' => USER_SESSION));
$sum = 0;
<?php foreach ($results as $result => $pole) : ?>
        <tr>
            <td><?=$pole['id'];?></td>
            <td><?=$pole['nameproduct'];?></td>
            <td><?=$pole['price'];?> €</td>
            <td><?=$pole['quantity'];?></td>
        </tr>
<?php 
$sum += $pole['price'] * $pole['quantity'];
endforeach;
echo $sum;
?>

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: