[PHP] Getallen opzoeken in een lijst

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Beste mensen,

Ik heb in een directory plaatjes staan. Deze directory lees ik uit met behulp van
Code:
$d=dir($dir);
while($entry=$d->read())

en daaruit volgt (bijvoorbeeld) de volgende lijst
...38-1.jpg38-2.jpg38-3.jpg42-1.jpg42-2.jpg42-3.jpg42-4.jpg48-1.jpg48-2.jpg52-1.jpg52-2.jpg

De bestandsnaam per plaatje is als volgt opgebouwd
$id-volgnummer.jpg
Nu wil ik graag alle plaatjes met een bepaald $id in een array zetten. Hiervoor gebruik ik
Code:
if(ereg($id."-([0-9]{1,3})\.jpg",$entry,$regs)) $temp["pic"][]=$entry;}

Op deze manier worden bij een $id=2 ook plaatjes met $id (bijvoorbeeld) 42 en 52 ook meegenomen in de array.

Probleem is naar mijn mening dat er dus wel gekeken wordt of de $id er in zit maar dat het dus niet uitmaakt wat er voor staat, daardoor worden tien- en honderdtallen ook meegenomen. Eigenlijk mag er dus geen cijfer voor staan. Ik heb wat geprobeerd met [^0-9] maar kom er niet uit.

De vraag is:
hoe selecteer ik "$id-volgnummer.jpg" (dus bijvoorbeeld 2-1.jpg) zonder voorloopnummer"$id-volgnummer.jpg" (dus bijvoorbeeld 42-1.jpg) te selecteren?

Alvast bedankt

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 16-09 09:15

Janoz

Moderator Devschuur®

!litemod

Waarom gooi je het allemaal in 1 grote string? Waarom maak je er geen array van? In dat geval kun je met de array functies werken (als inArray() (of is het nu weer in _array() ))

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

Verwijderd

Janoz schreef op 30 juli 2003 @ 12:30:
Waarom gooi je het allemaal in 1 grote string? Waarom maak je er geen array van? In dat geval kun je met de array functies werken (als inArray() (of is het nu weer in _array() ))
in_array() ;)
Maar idd waarom maak je er 1 string van? lekker onhandig.

PHP:
1
2
3
4
5
$bla = array();
$d=dir($dir);
while($entry=$d->read()) {
array_push($bla,array($entry));
}


Je zou ook nog even kunnen kijken om de array dan weer op te splitten met andere array functies zodat je een 2D array krijgt

voor de leeks, 2D array:
PHP:
1
2
3
4
5
6
7
8
$a = array(
    array(
        "1-1.jpg","1-2.jpg"
    ),
    array(
        "2-1.jpg","2-2.jpg"
    )
);


Zie ook: http://nl2.php.net/array of http://www.php.net/array

[ Voor 8% gewijzigd door Verwijderd op 30-07-2003 12:51 ]