Om jag läser in en rad som ser ut som nedan
text1|text2|text3
Om jag läser in det i en array, så blir ju exempelvis $lista[1] = text1|text2|text3
Kan man på något sätt dela på denna rad, så att det blir $list[1] = text1, $lista[2] = text2, osv.... ???
Den ska alltså räkna "|" som en ny rad, och den ska Inte med i värdet på $lista[1].....
Hur gör man detta ??
Textfilen har en hel del rader, så då kanske det blir fel neråt sen.... Hjälp tack !
MatteMedlem sedan aug. 20002 975 inlägg <?php
$text = "text1|text2|text3";
$lista = explode("|", $text);
echo $lista[0]."<br>";
echo $lista[1]."<br>";
echo $lista[2];
?>
SPiNMedlem sedan mars 20007 896 inlägg Missade Matte raden om att det fanns flera rader? ;)
Nåja, det var en fin lösning som man bygger vidare på. :)
<?php
$fileList = file( "dinFil.txt" );
while( $curRow = array_shift( $fileArray ) ) {
$curList = explode( "|", $curRow );
array_push( $resultList, $curList );
}
?>
Jag tror att array_push() kan skjuta till en array ( I det här fallet $curList ) längst bak i $resultList, annars får man trixa lite till:
...
while( $curRow = array_shift( $fileArray ) ) {
$curList = explode( "|", $curRow );
while( $curValue = array_shift( $curList ) )
array_push( $resultList, $curValue );
}
...
:)
Ok.
Om jag vill läsa in en rad ur arrayen och sen köra en explode på den och lägga in text1, text2 och text3 i en ny array. Hur ska jag göra då ?
Är rädd för att ni snackar med en nybörjare ;)
SPiNMedlem sedan mars 20007 896 inlägg Som Matte visade i sitt exempel. Mitt exempel skapade en array av alla rader i filen.
<?php
$fileList = file( "dinFil.txt" );
$rowList = explode( "|", $fileList[ 0 ] );
while( $curRow = array_shift( $rowList ) )
array_push( $resultList, $curRow );
...
?>
Om du inte vill läsa in första raden ur filen, utan t.ex. femte, ändrar du bara $fileList[ 0 ] till $fileList[ 5 ].
MatteMedlem sedan aug. 20002 975 inlägg Spin. Vad är finessen med allt det där. Varför inte göra det lite enklare:
<?php
$fileList = file( "dinFil.txt" );
$resultList = explode( "|", $fileList[ 0 ] );
?>
Om jag har fattat det rätt så är det bara att läsa in alla rader i en array och sen köra
$nyarray = explode( "|", $fileList[ önskad_rad ] );
Då hamnar önskad_rad i arrayen $nyarray !?
Rätt ?
MatteMedlem sedan aug. 20002 975 inlägg Ja, så brukar jag göra.
Läser man in från en textfil så kan det bli lite radslutsmärken och skräp i slutet av strängen. Det gör inget om man ska skriva ut, men om du har sista delen av strängen (sista post i nya arrayen) till att jämföra med något så kan det bli lite knas. För säkerhets skull gör isåfall såhär:
$nyarray = explode( "|", rtrim($fileList[ önskad_rad ]) );
Om du loopar igenom $fileList så kan du samla arrayerna i en array med:
$nyarray[] = explode( "|", rtrim($fileList[ önskad_rad ]) );
Då får du en tvådimensionell array, och kan lätt ta fram dina värden med typ
echo $nyarray[1][3];
Ok.... då tror jag att jag vet hur jag ska göra, tackar.
Ska testa ikväll.
SPiNMedlem sedan mars 20007 896 inlägg
Spin. Vad är finessen med allt det där.
:o
Det kan man ju fråga sig. Jag måste ha varit trött, eller så var det min dumhet som tog överhanden. ;)