Hinterm Komma aufrunden

Du könntest das ganze entweder direkt ausgeben per echo:
PHP:
        foreach( $numbers as $val )
        {
                echo number_format( str_replace(',','.', $val), 2 );
        }
Hier passiert gar nix.. nur ein leeres Blatt.. so sieht mein code aus..

PHP:
        echo "<td>".
        $numbers = array($data[1]);
       // $numbersNewFormat = array();
        foreach( $numbers as $val )
        {
                echo number_format( str_replace(',','.', $val), 2 );
        }
        ."</td>";

mit und ohne ausklammern des $numbersNewFormat erhalte ich eine leere Seite..

PHP:
        foreach( $numbersNewFormat as $data )
        {
            echo $data;
        }

Hier passiert gar nix.. leeres Blatt




PHP:
        echo "<td>".
        $numbers = array($data[1]);
        $numbersString = '';
        foreach( $numbers as $val )
        {
                $numbersString .= number_format( str_replace(',','.', $val), 2 );
        }
        echo $numbersString;
        ."</td>";
Bei dieser Variante erhalte ich: Array29.90


und hier ist der Gesamte Code den ich im Einsatz habe..

PHP:
<?php
$i = 0;
$handle = fopen('test.csv', 'r');
while($data = fgetcsv($handle, 500, ';'))

{
   if($i != "1" && $i != "4") // Sorgt das Zeilen 1 und 4 nicht angezeigt werden
   {
        echo "<tr>";
        echo "<td>".$data[0]."</td>";
        echo "<td>".
        $numbers = array($data[1]);
       // $numbersNewFormat = array();
        foreach( $numbers as $val )
        {
                echo number_format( str_replace(',','.', $val), 2 );
        }
        ."</td>";
        echo "<td>".$data[2]."</td>";
        echo "<td>".$data[3]."</td>";
        echo "<td>".$data[4]."</td>";
        echo "<td>".$data[1]."</td>";
        echo "</tr>";
   }
   $i++;
}

fclose($handle);

?>

</table>


mehr fällt mir jetzt auch nicht ein :(
 
@oezer: wie loomes bereits sagte wäre es nicht schlecht zu wissen wie du denn die ausgabe haben möchtest. Wie soll das ganze aussehen!
 
Hier ein paar Zeilen...

Code:
Produktname;Preis;Produkt;Anbieter;Zum_Anbieter
Angebot: Basis-Flatrate DSL 2000 und Festnetz-Flatrate und Handy-Flatrate;29,9;DSL 2000;Versatel;http://ad.zanox.com/ppc/?9527516C2040480017&ULP=[[44455]]
Angebot: DSL 6000 und Festnetz-Flatrate und Handy-Flatrate;32,4;DSL 6000;Versatel;http://ad.zanox.com/ppc/?9527516C2040480017&ULP=[[44456]]

wie gesagt das ganze als Tabelle mit korrekten Euro beträgen aufgerundet..
Es dreht sich um Produktdaten von zanox..
 
Teste mal folgendes:
PHP:
<table border="1">
<?php
$i = 0;
$handle = fopen('test.csv', 'r');
while( $data = fgetcsv($handle, 500, ';') )
{
   if($i != "0" && $i != "3") // Sorgt das Zeilen 1 und 4 nicht angezeigt werden
   {
        echo "<tr>";
        echo "<td>".$data[0]."</td>";
        echo "<td>";
        echo number_format( str_replace(',','.', $data[1]), 2 );
        echo "</td>";
        echo "<td>".$data[2]."</td>";
        echo "<td>".$data[3]."</td>";
        echo "<td>".$data[4]."</td>";
        echo "</tr>";
   }
   $i++;
}
fclose($handle);
?>
</table>
 
Jepp! jetzt t es... danke dir rechtherzlich..

aber nur so zum verständnis.. die inhalte wurden ja als array in $val eingepackt, wieso hat hier die Ausgabe nicht funktioniert und wieso das ganze direkt als $data[1] im str_replace t.. ist mir nicht ganz ersichtlich..

dann ist der Betrag in der CSV datei mit Komma, um diesen zu verarbeiten muss das ganze in einen Punkt umgewandelt werden? oder kann ich den auch regulär als komma lassen.. ? Bei den Amis ist ja der Punkt sozusagen unser Komma.. (das mal am rande..)

ansonsten danke nochmals..
 
mal eine weitere Frage wie ich das in diesem Zusammenhang lösen könnte..
Ich habe folgenden code mittlerweile..

PHP:
<table border="1">
<?php
$i = 0;
$handle = fopen('test.csv', 'r');
while( $data = fgetcsv($handle, 500, ';') )
{
   if($i != "0" && $i != "3") // Sorgt das Zeilen 1 und 4 nicht angezeigt werden
   {
        echo "<tr>";
        echo "<td>".$data[0]."</td>";
        echo "<td>";
        echo number_format( str_replace(',','.', $data[1]), 2 );
        echo "</td>";
        echo "<td>".$data[2]."</td>";
        echo "<td>".$data[3]."</td>";
        echo "<td>".$data[4]."</td>";
        echo "</tr>";
   }
   $i++;
}
fclose($handle);
?>
</table>

Wenn ich den Preis sortieren möchte, angefangen mit dem niedrigsten Preis.. ist in diesem Fall die Funktion array_multisort oder asort für meine Bedürfnisse die richtige?

Ich hab über den tabellen folgendes eingebaut..
PHP:
 foreach ($data as $key => $row) {
        $preis[$key] = $row['.$data[1].'];
        }

damit bekomme ich das aber so nicht hin.. die muss ich doch irgendwo in die Spalte mit dem Preis einfügen..

PHP:
        echo "<td>";
        if($d = $data[1];) {
        asort($preis, SORT_DESC, $data);
        echo number_format( str_replace(',','.', $data[1]), 2 )." &euro;";
        } else {
        echo "Kein Wert";
        echo "</td>";

Was mache ich hier falsch?
 
Zurück