Avatar billede wiesemarc Nybegynder
23. maj 2003 - 20:49 Der er 31 kommentarer og
1 løsning

Finde noget i en string.

$string = "hejsa|due|daltid|nu";
$arr1 = explode("|", $string);


Hvordan finde jeg den array hvor det der er i den starter med d eller fx da ???
Avatar billede dragen Nybegynder
23. maj 2003 - 20:51 #1
$i=-1;
do {$i++;
  if (substr($arr1,0,1)=="d"){
    echo "huhuhu";
  };
} while ($i<sizeof($arr1));
Avatar billede dragen Nybegynder
23. maj 2003 - 20:52 #2
bøvlet, men virker =)
Avatar billede dragen Nybegynder
23. maj 2003 - 20:52 #3
dvs. det gør den ikke fordi der er en fejl....prøver lige igen:

$i=-1;
do {$i++;
  if (substr($arr1[$i],0,1)=="d"){
    echo "huhuhu";
  };
} while ($i<sizeof($arr1));
Avatar billede wiesemarc Nybegynder
23. maj 2003 - 20:53 #4
hvad skal jeg skrive hvis det er "du" jeg søger ???+
Og hvordan får jeg den til at skrive array'en ud som den finder ???
Avatar billede dragen Nybegynder
23. maj 2003 - 20:53 #5
Hvis du vil ha' "da" så ret til
  if (substr($arr1[$i],0,2)=="da"){
Avatar billede wiesemarc Nybegynder
23. maj 2003 - 20:53 #6
Okay....
Avatar billede dragen Nybegynder
23. maj 2003 - 20:55 #7
Ok du vil have det fundne som et array...

$i=-1;$o=0;
do {$i++;
  if (substr($arr1[$i],0,1)=="d"){
    $output[$o]=$arr1[$i];$o++;
  };
} while ($i<sizeof($arr1));

$output er det fundne som et array.
Avatar billede fangel Nybegynder
23. maj 2003 - 20:55 #8
dragen => eller:

---
<?php
$string = "noget|der|bl.a.|starter|med|d|og|så|lidt|andet|der|ikke|gør";
$arr = explode("|",$string);
foreach($arr AS $key => $value){
  if($value[0] == "d") echo "index $key indeholder en streng der begynder med d: $value";
  else echo "index $key starter ikke med d: $value);
}
?>
---

burde også kunne...

Morten
Avatar billede wiesemarc Nybegynder
23. maj 2003 - 20:56 #9
Jeg får fejl i denne linie ??? Hvorfor ??

$intCount = count($arr1);
echo "Der er " . $intCount . " poster";
Avatar billede fangel Nybegynder
23. maj 2003 - 20:57 #10
hvilken fejl?
Avatar billede dragen Nybegynder
23. maj 2003 - 20:57 #11
Selvfølgelig, og min er da også med et do-loop istedet for et for-loop som i bund og grund ville være smartere, men det er simpelt, relativt hurtigt og det virker (forhåbentligt, hehe - det er skrevet efter hovedet).
Avatar billede wiesemarc Nybegynder
23. maj 2003 - 20:57 #12
Morten den count ´du kom med laver fejl når jeg bruger disse to sammen
Avatar billede fangel Nybegynder
23. maj 2003 - 20:57 #13
hov... anden echo skal slutte med et " og ikke en )...
Avatar billede dragen Nybegynder
23. maj 2003 - 20:58 #14
prøv med sizeof($arr1); istedet...
Avatar billede wiesemarc Nybegynder
23. maj 2003 - 20:58 #15
Notice: Undefined offset: 359 ???
Avatar billede fangel Nybegynder
23. maj 2003 - 20:59 #16
det er ikke min kode, men en linie ever, der pprøver at udskrive index 359 som ikke findes... prøv at kom med den fulde kode, så skal jeg sige hvor fejlen ligger...

Morten
Avatar billede dragen Nybegynder
23. maj 2003 - 20:59 #17
Jaja whatever - du skriver ingen fejlmeddelelse, så er det heller ikke nemt =)
Avatar billede wiesemarc Nybegynder
23. maj 2003 - 20:59 #18
Notice: Undefined offset: 359 ???
Avatar billede fangel Nybegynder
23. maj 2003 - 21:00 #19
prøv at kom med den fulde kode, så skal jeg sige hvor fejlen ligger...
Avatar billede fangel Nybegynder
23. maj 2003 - 21:00 #20
altså kilde-kode...
Avatar billede wiesemarc Nybegynder
23. maj 2003 - 21:01 #21
<?PHP
$fcontents = "hejsa¤¤du¤¤der";
?>

<br><br><br>

<?

$line1 = $fcontents;
$line1 = str_replace("<a", "", $line1);
$line1 = str_replace("href=", "", $line1);
$line1 = str_replace("\"", "", $line1);
$line1 = str_replace("\\", "", $line1);
$line1 = str_replace(" ", "", $line1);

$arr1 = explode("¤¤", $line1);

$intCount = sizeof($arr1); //  usikker på om der skal stå +1...
echo "Der er " . $intCount . " poster";
$t = 0;

$intCount = $intCount - 1;
$i=1;
do {$i++;
  if (substr($arr1[$i],0,d)=="d"){
    echo "$arr1[$i]<br>";
  };
} while ($i<sizeof($arr1));
?>
Avatar billede wiesemarc Nybegynder
23. maj 2003 - 21:02 #22
Dette skal lige som ikke være med "Ctrl + V fejl..."

$line1 = $fcontents;
$line1 = str_replace("<a", "", $line1);
$line1 = str_replace("href=", "", $line1);
$line1 = str_replace("\"", "", $line1);
$line1 = str_replace("\\", "", $line1);
$line1 = str_replace(" ", "", $line1);
Avatar billede dragen Nybegynder
23. maj 2003 - 21:02 #23
Prøv at sætte et lille @ foran $arr1 = explode("¤¤", $line1);
Avatar billede wiesemarc Nybegynder
23. maj 2003 - 21:02 #24
Stadig væk...
Avatar billede dragen Nybegynder
23. maj 2003 - 21:03 #25
Ahh! ok
} while ($i<sizeof($arr1)-1);

skal der stå så!
Avatar billede wiesemarc Nybegynder
23. maj 2003 - 21:03 #26
Okay... Nu skred den sin vej...
Avatar billede wiesemarc Nybegynder
23. maj 2003 - 21:04 #27
Takker.... Så er den fejl fri... :0)
Avatar billede fangel Nybegynder
23. maj 2003 - 21:04 #28
---
<br><br><br>
<?
$fcontents = "hejsa¤¤du¤¤der";

$line1 = $fcontents;
$line1 = str_replace("<a", "", $line1);
$line1 = str_replace("href=", "", $line1);
$line1 = str_replace("\"", "", $line1);
$line1 = str_replace("\\", "", $line1);
$line1 = str_replace(" ", "", $line1);

$arr1 = explode("¤¤", $line1);

$intCount = count($arr1);
echo "Der er " . $intCount . " poster";

foreach($arr1 AS $arr_str){
  if (substr($arr_str,0,1)=="d"){
    echo "$arr_str<br>";
  };
}
?>
---

Morten
Avatar billede dragen Nybegynder
23. maj 2003 - 21:04 #29
Du skriver
$intCount = $intCount - 1;
$i=1;  <----------Der burde da vidst stå -1 her?
do {$i++;
  if (substr($arr1[$i],0,d)=="d"){
    echo "$arr1[$i]<br>";
  };
} while ($i<sizeof($arr1));
Avatar billede dragen Nybegynder
23. maj 2003 - 21:05 #30
Nevermind...
Avatar billede fangel Nybegynder
23. maj 2003 - 21:09 #31
dragen => derfor det er nemmere at lege med foreach()... lige glad med hvor mange poster, og hvad key'en hedder ;)

http://php.net/foreach

Morten
Avatar billede wiesemarc Nybegynder
23. maj 2003 - 21:09 #32
Okay... Fedt nok, så er den da fejl fri nu..
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester