Avatar billede mrfunder Nybegynder
06. april 2007 - 02:34 Der er 9 kommentarer

Fejl I In array

Hej Eksperter.
Jeg bøvler lidt med dette script, jeg kan ikke helt få det til at virke. Umiddelbart får jeg ingen fejlmeddelelser.

Ved sammenligning hvis $id er det samme som $eftersmag skal $number være 2; dette virker dog desværre ikke helt sådan.

<?php
$drikke = array(
        array(1, "Vand"),
        array(2, "Cola"),
        array(3, "Fanta"),
        array(4, "Mælk"),
        );

$eftersmag = array(
        array(1),
        array(3),
        );

foreach($drikke as $drik) {
    list($id, $name) = $drik;
    $number = (in_array($id, $eftersmag) ? 2 : 1);   
    print "$id, $number, $name<br />";
}
?>



Mit output er følgende:
------------------
1, 1, Vand
2, 1, Cola
3, 1, Fanta
4, 1, Mælk
------------------
Og hvis scriptet eksekveres efter min hensigt burde jeg have dette:
------------------
1, 2, Vand
2, 1, Cola
3, 2, Fanta
4, 1, Mælk


På forhånd tak (:
Avatar billede morhan Novice
06. april 2007 - 03:18 #1
$eftersmag har du lavet som et array, der indeholder arrays. Det er ikke hvad in_array forventer

$eftersmag = array(1, 3);
Avatar billede mrfunder Nybegynder
06. april 2007 - 04:03 #2
<?php
$drikke = array(
        array(1, "Vand"),
        array(2, "Cola"),
        array(3, "Fanta"),
        array(4, "Mælk"),
        );

$eftersmag = array(1,3);

foreach($drikke as $drik) {
    list($id, $name) = $drik;
    $number = (in_array('$id', $eftersmag) ? 2 : 1);   
    print "$id, $number, $name<br />";
}
?>


Det virker ligeledes ikke.. andre forslag til hvordan jeg kan lave denne funktion?
Avatar billede showsource Seniormester
06. april 2007 - 07:04 #3
<?php
$drikke = array(
        array(1, "Vand"),
        array(2, "Cola"),
        array(3, "Fanta"),
        array(4, "Mælk")
        );

$eftersmag = array(1,3);

foreach($drikke as $drik) {
    list($id, $name) = $drik;
    $number = (in_array($id, $eftersmag) ? 2 : 1); 
    print "$id, $number, $name<br />";
}
?>
Avatar billede mrfunder Nybegynder
06. april 2007 - 14:57 #4
showsource, smid et svar tak :)
Avatar billede mrfunder Nybegynder
06. april 2007 - 15:18 #5
Faktisk har jeg brug for at funktionen bliver endnu mere avanceret, det kan jeg ikke selv overskue.. Hvis jeg opretter et spørgsmål med ekstra points, ville det være muligt at kunne få assistance til dette også?

Hvad scriptet skal gøre er at tjekke om man har en båd i en af de eksisterende havne: hvis man har det, så skal $name defineres som `name` på båden som hentes i databasen. Og ligeledes skal $type defineres som `status` der også er gemt i databasen. Eksistere der ingen båd i den valgte havn skal $name ikke ændres og typen skal være 3. (status i databasen kan veksle mellem 1-2).

Mit problem er så når jeg opretter mit array ($myboats[] = "$row_boats[pos]";) hvordan tilføjer jeg både $pos, $name og $status? Hvor efter jeg senere kan bruge det til at sammenligne med?

$docks = array(
array(344, 102, 1, "København, Danmark"),
array(230, 75, 2, "Nuuk, Grønland"),
array(321, 110, 3, "London, England"),
array(347, 110, 4, "Berlin, Tyskland"),
);

$getBoat = mysql_query("SELECT `name`,`pos`,`status` FROM `boats` WHERE `ownership` = '1'") or die(mysql_error());
if(mysql_num_rows($getBoat)) {
while($row_boats = mysql_fetch_assoc($getBoat)) {

$myboats[] = "$row_boats[pos]";
}
}

foreach($docks as $pos) {
list($cor_X, $cor_y, $position, $name) = $pos;
if(in_array($position, $myboats) {
$type = $
$name = $
} else {
$type = 3;
print "$position, $type, $name<br />";
}
Avatar billede mrfunder Nybegynder
06. april 2007 - 15:19 #6
Multidimensionelle/sammensatte arrays- er dette muligt? i så fald hvordan :)
Avatar billede mrfunder Nybegynder
06. april 2007 - 16:12 #7
Jeg vælger at lukke dette spørgsmål som det er. showsource smid et svar ved lejlighed :)
Avatar billede morhan Novice
06. april 2007 - 16:41 #8
Er du med på forskellen mellem din oprindelige kode, og den fra showsource?
Avatar billede showsource Seniormester
07. april 2007 - 16:12 #9
og videre på morhan's,
i dit ex. spurgte du om en streng fandtes i et array som en integer.

Og ingen point til mig tak.
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