Avatar billede theboy Nybegynder
11. august 2005 - 15:29 Der er 11 kommentarer og
1 løsning

gennemløb array

Hvordan gennemløber jeg et Array fra:
---------
<?php if ($HTTP_SERVER_VARS['REQUEST_METHOD'] === 'POST') {
    $user_vars = $HTTP_POST_VARS;
} else {
    $user_vars = $HTTP_GET_VARS;
}
---------
Således at jeg kan printe arrays 2 afgumenter: key og værdi.

Eksempel:
Hvis mit array så sådanne ud:
$three = array(
18              "T"    =>    "Top",
19              "M"    =>    "Middle",
20              "B"    =>    "Bottom"
21              );
Hvordan kan jeg så printe følgende:
navn: T Værdi: Top
navn: M Værdi: Middle
navn: B Værdi: Bottom
Avatar billede jakobdo Ekspert
11. august 2005 - 15:45 #1
foreach($user_vars as $key => $value)
{
echo "Key: " . $key . " Value: " . $value . "<br>";
}
Avatar billede theboy Nybegynder
11. august 2005 - 16:09 #2
Det virker tak.
Nu får jeg så outputtet:
-------
Key: antal_med_id_1 Value: 1
Key: antal_med_id_2 Value: 2
Key: Submit Value: Tilføj
Key: antal_med_id_3 Value: 3
-------
Kan jeg ud fra dette array fjerne (Submit,Tilføj) og så få lavet et nyt array uden dennne?
jakobdo, kan bare sende det som et svar så er det accepteret
Avatar billede theboy Nybegynder
11. august 2005 - 16:26 #3
Ud over at fjerne den med key "Submit" kan man så også fjerne de elementer hvis value er er nul.
Ellers resikere jeg outputtet:
Key: antal_med_id_1 Value: 1
Key: Submit Value: Tilføj
Key: antal_med_id_2 Value: 2
Key: antal_med_id_3 Value: 3
Avatar billede theboy Nybegynder
11. august 2005 - 16:27 #4
UPS, Jeg mente at jeg kan ende med:
Key: antal_med_id_1 Value:
Key: Submit Value: Tilføj
Key: antal_med_id_2 Value: 1
Key: antal_med_id_3 Value:
Avatar billede jakobdo Ekspert
11. august 2005 - 17:09 #5
Jeg forstår ikke hvad du vil have?
Snakker vi noget sortering af output?
Avatar billede terrak Nybegynder
11. august 2005 - 17:21 #6
Du sender vel dine data fra en formel? Prøv at fjerne name="Submit" fra submit knappen.

Den tomme value kan du fjerne med en lille funktion, som jeg ikke kunne finde på php.net:

---

function array_remove_empty($array) {

foreach ($array as $key => $value) {
if ($value != "") {
$array2[$key] = $value;
}
}

return $array2;

}

---

Så smider du bare array_remove_empty($user_vars); ind før din foreach. Det kunne også gøres med en if sætning før $value blev outputtet i foreach løkken, men jeg synes hurtigt det kan gøre tingene uoverskuelige :)
Avatar billede theboy Nybegynder
11. august 2005 - 17:41 #7
jeg fik ikke det til at virke med at fjerne name="Submit, men jeg tror du er inde på noget af det rigtige.

Jeg prøver igen:
Jeg står men et array: $user_vars som indeholder:
(antal_med_ID_1, 3)
(antal_med_ID_2, 2)
(antal_med_ID_21, 13)
(Submit, Tilføj)
(antal_med_ID_22,)
(antal_med_ID_23,)


Jeg ønsker at få lavet et ny array hvor der er fjernet alle input der ligner (Submit, Tilføj)
Og der ud over alle input som ikke har nogen $value
Dvs. det nye array $user_vars2 skulle indeholder følgende
----------
(antal_med_ID_1, 3)
(antal_med_ID_2, 2)
(antal_med_ID_21, 13)
---------
Avatar billede jakobdo Ekspert
11. august 2005 - 17:46 #8
Nu ved jeg ikke om der altid vil være tal i value, hvis ja, så kunne du lave et tjek ala:

function array_remove_non_numeric($array)
{
  $array2 = array();
  foreach ($array as $key => $value)
  {
    if (is_numeric($value))
    {
      $array2[$key] = $value;
    }
  }
  return $array2;
}
Avatar billede theboy Nybegynder
11. august 2005 - 18:08 #9
Det er supper så slipper jeg omkring begge dele på 1 gang. Takker
Avatar billede jakobdo Ekspert
11. august 2005 - 18:09 #10
Selv tak, og et svar.
Avatar billede terrak Nybegynder
11. august 2005 - 18:29 #11
Du kunne vel ikke lige smide din formel her ind? Det lyder underligt.
Avatar billede theboy Nybegynder
11. august 2005 - 18:59 #12
Jeg ved bare at nedenstående fungere:
------------------
<html>
<head>
<title>Modtagelse</title>
</head>

<body>
<?php if ($HTTP_SERVER_VARS['REQUEST_METHOD'] === 'POST') {
    $user_vars = $HTTP_POST_VARS;
} else {
    $user_vars = $HTTP_GET_VARS;
}

function array_remove_non_numeric($array)
{
  $array2 = array();
  foreach ($array as $key => $value)
  {
    if (is_numeric($value))
    {
      $array2[$key] = $value;
    }
  }
  return $array2;
}
$nytarray = array_remove_non_numeric($user_vars);
foreach($nytarray as $key => $value)
{
echo "Key2: " . $key . " Value: " . $value . "<br>";
}
?>
<p>
<form name="form1" method="post" action="<?echo $PHP_SELF;?>">
  <p>
    <input name="antal_med_id_1" type="text" id="antal_med_id_1">
    <input type="submit" value="Tilføj">
</p>
  <p>
    <input name="antal_med_id_2" type="text" id="antal_med_id_2">
    <input type="submit" value="Tilføj">
</p>
  <p>
    <input name="antal_med_id_3" type="text" id="antal_med_id_3">
    <input type="submit" value="Tilføj">
</p>
  <p>&nbsp;  </p>
</form>

</body>
</html>
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