2Danke
ERLEDIGT
JA
JA
ANTWORTEN
3
3
ZUGRIFFE
226
226
EMPFEHLEN
-
Hallo,
Ich versuche aus einer csv Datei Daten auszulesen und zu speichern. Informationen in der Datei sind mit ',' getrennt. Daher speicher ich zuerst alle Elemente in den Array $v. Da ich aber nur jedes 7te Element speichern möchte versuche ich in der foreach Schleife diese in ein weiteres Array zu speichern.
Zeile 11 gibt mir wie gewünscht das richtig Element zurück. Es wird aber scheinbar nicht in $ary gespeichert. var_dump gibt eine Länge von 1 zurück mit 131075 als Inhalt, was das letzte Element von den ersten Array ist.
Hoffe ihr versteht mein Problem und verzeihung für den schrecklichen Programmierstil:D.
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
<?php $file="ES_1mBar_20120120.csv"; $datei=file_get_contents($file); $v=array(); $v=explode(",",$datei); $i=0; $x=0; $ary=array(); foreach($v as $k){ if($i==6){ // to take every seventh element $ary[x]=(int)substr($k,0,6); //shortens the String element and cast int $x++; $i=0; } $i++; } echo var_dump($ary); // array(1) { ["x"]=> int(131075) } echo count($ary); // <---- 1****? ?>
-
07.02.12 12:11 #2
Bei deinem Var-Dump gätte dir auffallen müssen das du $x nicht als Variable übergibst, sondern als String "x".
Die Schweine von heute sind unsere Schnitzel von morgen!
-
Argh. danke! Tut mir leid für den peinlichen Fehler, bin noch neu
-
Zudem machst du dir das leben unnötig schwer.
PHP bietet gute Möglichkeiten um mit csv zu arbeiten: fgetcsv()
Nachtrag:PHP-Code:$handle = fopen ('ES_1mBar_20120120.csv', 'r');
while (($row = fgetcsv ($handle, 1000, ",")) !== FALSE ) {
// 7tes Element der Zeile hat den Index 6
$ary[] = (int) $row[6];
}
fclose ($handle);
var_dump($ary);
Ich komme ab der AUfgabenstellung noch nicht ganz klar. Also das obige Beispiel nimm immer den 7ten Eintrag pro csv-Zeile. Die Beschreibung und dein Code lässt mich aber vermuten, dass du nur eine Zeile mit zig Feldern hast und von dieser Liste jeden 7ten Eitrag haben willst. Dann bieten sich Array und ihre Möglichkeiten an
PHP-Code:// Test-Array mit 56 Einträgen
$data= range('A','x');
// Die Auswahlmaske erstellen für jeden 7ten Eintrag
$select = range(-1, count($data)-1, 7);
// Jeden 7ten Eintrag herauspicken.
$result = array_intersect_key($row, array_flip($select));
var_dump($result);
---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
Ähnliche Themen
-
erzeugen eines Neuen Entities mit id!=null
Von sauron666 im Forum Enterprise Java (JEE, J2EE, Spring & Co.)Antworten: 0Letzter Beitrag: 05.05.09, 20:05 -
foreach(array as key=value)value==''
Von Chaosengel_Gabriel im Forum PHPAntworten: 2Letzter Beitrag: 12.06.08, 15:07 -
mehrdimensionales array in foreach...
Von keckskoenig im Forum PHPAntworten: 3Letzter Beitrag: 13.01.08, 20:21 -
automatisiertes erzeugen von neuen Projekten
Von sydmak im Forum Visual Basic 6.0Antworten: 2Letzter Beitrag: 02.07.07, 09:15 -
Array foreach frage
Von crashx im Forum PHPAntworten: 2Letzter Beitrag: 02.04.07, 12:33





Zitieren

Login






[PHP][Snippet] Array zu XML konvertieren