[PHP] Waarde array in één keer printen zonder loops

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • silentsnake
  • Registratie: September 2003
  • Laatst online: 05:27
Probleem

Ik probeer een plugin te maken voor e107, een CMS. Om een mooi geintegreerd dropdown menuutje te creëren verwacht het CMS een voorgedefineerde functie en dat alle waardes op 1 regen staan. Zoals dit:

PHP:
1
$fieldvalu = "waarde1,waarde2,waarde3"


Het is dus de bedoeling dat er in die dropbox de geregistreerde gebruikers komen te staan. Daarvoor query ik naar de database, gebruik array_push om de waardes inclusief komma's netjes in één array te krijgen. Ik, als relatief gevorderede Perl gebruiker, dacht vrolijk een print $array te kunnen doen zoals dat bij Perl ook kan, maar helaas is dat niet mogelijk. Ik zoek dus een manier om in één keer de complete array uit te printen.

Zelf geprobeerd

Zoals de topic titel al doet vermoeden heb ik het al lang en breed met loops geprobeerd zoals er ook in de search meerdere malen wordt gesuggereerd.

Een voorbeeld:

PHP:
1
2
3
4
For ($i = 0;$i <= $count;$i++)
{
      $fieldvalu = "arr[$i]";
}


Zoiets werkt dus niet, want dan krijg ik gewoon een lege dropdown menu. Voer ik dezelfde code uit, alleen dan met een print in plaats van $fieldvalu werkt het prima, alleen staat het dan niet op de plek waar het moet staan. Als ik een array element er in hardcode (dus $i veranderen in 0) gaat het ook prima.

- Iet als:

PHP:
1
2
3
4
5
6
7
$x = 0;

while($row = mysql_fetch_array($resultaat))
{
     $fieldvalu = "$arr[$x]";
     $x++
}


Werkt dus ook niet (logisch want het is in princiepe hetzelfde als hierboven).

- Een ander voorbeeld:

PHP:
1
2
3
4
For ($i = 0;$i <= $count;$i++)
{
      $fieldvalu = "arr[0],arr[1],arr[2],arr[3]";
}


Dit werkt wel. Alleen is is geen optie aangezien het super lelijk is en tevens is de array grootte onbekend is. Het enige wat ik dus moet doen is gewoon de waarde van de complete array eruit kwakken.

- Ik heb ook naar de functie array_values gekeken. Dit is alleen geen optie aangezien de waardes dan inclusief index keys geprint worden wat ik dus niet wil.

Dit is de code voor het genereren van de tabel. Ik heb hier zelf ook mee gespeelt maar er niets nuttigs uit kunnen krijgen. Misschien dat een kleine hack aan deze er voor zorgt dat hij wel gewoon met loops overweg kan of iets dergelijks?

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
case "dropdown":
     $ret ="<select class='tbox' style='width:200px'  name='".$fieldname."'><option></option>";
     for ($i=0; $i<count($tmp); $i++) {
     $checked = ($tmp[$i] == $presetvalue)? " selected" : "";
     $ret .="<option value='$tmp[$i]' $checked />". $tmp[$i] ."</option />\n";
     };
     $ret .="</select>";
break;

<snip>

return $ret;


Met de .= functie kan je verschillende strings aan elkaar plakken. En voor de duidelijkheid, er zijn dus meerdere cases voor text boxen, tables, checkboxes enz enz.

Sites

Op http://nl3.php.net/manual/nl/ref.array.php zijn een heleboel mooie functies te vinden, maar helaas niet het gene wat ik nodig heb.

Het zal waarschijnlijk wel heel eenvoudig zijn en ik zal wel iets compleet over het hoofd zien 8)7

Acties:
  • 0 Henk 'm!

  • MeIsTwisted
  • Registratie: November 2001
  • Laatst online: 28-07-2023

MeIsTwisted

not a Twisted mind

explode?

verkeerd gelezen. implode moet zijn

[ Voor 75% gewijzigd door MeIsTwisted op 23-06-2005 23:47 ]

Multimonitor is relax :P


Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

PHP:
1
$fieldvalu = implode(',', $arr);

Intentionally left blank


Acties:
  • 0 Henk 'm!

  • SchizoDuckie
  • Registratie: April 2001
  • Laatst online: 18-02 23:12

SchizoDuckie

Kwaak

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
for ($i=0; $i<sizeof($array);$i++)
{
$fieldvalue .=  ', '.$array[$i];
}
of
foreach ($array as $key=>$val)
{
echo: "key: {$key}<br>value:{$value}<br><br>";
}

of
echo implode(", ", $array);


:?

[ Voor 74% gewijzigd door SchizoDuckie op 23-06-2005 23:49 ]

Stop uploading passwords to Github!


Acties:
  • 0 Henk 'm!

  • laurensl
  • Registratie: Juni 2000
  • Niet online
PHP:
1
$fieldvalu = "$arr[$x]";


moet dat niet zonder ""?

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

laurensl schreef op donderdag 23 juni 2005 @ 23:47:
PHP:
1
$fieldvalu = "$arr[$x]";


moet dat niet zonder ""?
Liever wel ja. Wel ontbreekt in de startpost continu de $ die er toch echt voor moet.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • silentsnake
  • Registratie: September 2003
  • Laatst online: 05:27
Mijn dank is groot. Implode was inderdaad wat ik nodig had.

Nogmaals bedankt en ik zal volgende keer beter m'n best doen om het zelf op te lossen :)
Pagina: 1