kostenloser Webspace werbefrei: lima-city


PHP-Array in JavaScript

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    anti-atomkraft

    Kostenloser Webspace von anti-atomkraft

    anti-atomkraft hat kostenlosen Webspace.

    Hi, Leute!
    Ich möchte gerne ein PHP-Array so "ausgeben", dass es von JavaScript direkt als solches erkannt wird.
    Ziel ist es also, aus einem PHP-Array ein JS-Array zu machen...

    Bei numerisch-orientierten Arrays kein Problem; man kann dann einfach in einer simplen FOR-Schleife alles ausgeben:
    for ($zaehler=0; $zaehler<count($array); $zaehler++){
    echo 'array['.$zaehler.']="'.$array[$zaehler].'";'; }

    Doch wie kann man das bei Text-orientierten Arrays wie
    $array['text']='blablabla';
    machen???
    Bitte um Hilfe!
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Guten Abend!

    Das sollte mir
    foreach()
    ganz gut funktionieren:
    http://php.net/manual/de/control-structures.foreach.php

    Unten sind auch schon einige Beispiele angegeben, die dem, was du machen möchtest, sehr nahe kommen dürften.


    Till ;)
  4. Beispiel

    PHP Array

    $data = array(); 
    
    $data['vorname']   = "Hans"; 
    $data['nachname']  = "Dampf"; 
    $data['adresse']   = "Entenhausen"; 
    $data['beruf']     = "Plauderer";


    PHP Array als JS Array

    <?php
    echo "jsarray = new Array(); \r\n"; 
    
    foreach ($data as $key => $value) { 
    echo "jsarray['".$key."'] = '".$value."'; \r\n"; 
    }
    
    ?>


    und bei mehrdimensionalen Arrays einfach noch ein for-Schleife drum herum mit rein
    $data[0]['vorname']  = "Hans"; 
    $data[0]['nachname'] = "Dampf"; 
    $data[0]['adresse']  = "Steamcity"; 
    $data[0]['beruf']    = "Plauderer"; 
    
    $data[1]['vorname']  = "Dagobert"; 
    $data[1]['nachname'] = "Duck"; 
    $data[1]['adresse']  = "Entenhausen"; 
    $data[1]['beruf']    = "Geldhai"; 
    
    $data[2]['vorname']  = "Albert"; 
    $data[2]['nachname'] = "Einstein"; 
    $data[2]['adresse']  = "Labor"; 
    $data[2]['beruf']    = "Physiker";


    <?php
    echo "jsarray = new Array(); \r\n"; 
    
    $anzahl = count($data); 
    for ($x=0; $x<$anzahl; $x++) { 
    
    $subdata = $data[$x]; 
    foreach ($subdata as $key => $value) { 
    echo "jsarray[".$x."]['".$key."'] = '".$value."'; \r\n"; 
    }
    
    }
    
    ?>

  5. Man kann auch ein mehrdimensionales Array (ja auch ein indiziertes :wink:)einfach mit mehreren verschachtelten foreach-Schleifen auslesen, dann muss man sich da keine for-Schleife drumherum basteln. Meine Meinung nach ist das die elegantere Lösung.

    Beitrag zuletzt geändert: 14.12.2011 12:31:15 von alfr3d
  6. Autor dieses Themas

    anti-atomkraft

    Kostenloser Webspace von anti-atomkraft

    anti-atomkraft hat kostenlosen Webspace.

    Hab' mich schon immer gafragt, wofür diese Funktion gut ist. Vielen Dank! :biggrin:

    @alfr3d: Kommt immernoch auf den Array-Typ an... Bei numerischen ist das halt einfacher...
  7. anti-atomkraft schrieb:
    @alfr3d: Kommt immernoch auf den Array-Typ an... Bei numerischen ist das halt einfacher...


    Ansichtssache...ich finde
    foreach($array as $value){
       statement;
    }

    angenehmer als:
    for ($i=0; $i<count($array); $i++){
        statement;
    }



  8. Autor dieses Themas

    anti-atomkraft

    Kostenloser Webspace von anti-atomkraft

    anti-atomkraft hat kostenlosen Webspace.

    Habe gerade selber noch 'ne hervorragende Möglichkeit gefunden: PHP5-Iterator!

    Beispiel von phpBuddy.eu:
    $person = array( "Vorname" => "Max",
                     "Nachname" => "Mustermann",
                     "Alter" => 39,
                     "Haarfarbe" => "Braun",
                     "Beruf" => "Rauhhaardackelzüchter" );
     
    $PersonObjekt = new ArrayObject( $person );
    $zeiger = $PersonObjekt->getIterator();
    
    for ($zeiger->rewind(); $zeiger->valid(); $zeiger->next())
    {
        echo $zeiger->key(). ": " .$zeiger->current(). "<br />";
    }
  9. In JS gibt es keine assoziativen Arrays.
  10. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    drafed-map schrieb:
    In JS gibt es keine assoziativen Arrays.
    Jedes Objekt ist in JavaScript ein assoziatives Array:
    <script type="text/javascript"><!--
    	var assoziativ = new Object();
    	assoziativ['key'] = 'value';
    	assoziativ['name'] = 'number';
    	assoziativ['assoziativ'] = 'javascript';
    	for(var value in assoziativ) {
    		document.write(value + ' = ' + assoziativ[value] + '<br />');
    	}
    	// das funktioniert auch (nur so nebenbe eine Bemerkung):
    	document.write('assoziativ.key = ' + assoziativ.key + '<br />');
    // --></script>
    Array ist nicht viel mehr als Object... ;-)

    Beitrag zuletzt geändert: 5.1.2012 18:04:04 von hackyourlife
  11. <?php
    
    $array = array();
    $array[] = array("test",1,100.9,true,array("foo","bar"));
    $array["x"] = "y";
    
    $json = json_encode($array);
    
    echo "var deinjsarray = $json;";
    
    ?>

    Ausgabe wäre:
    var deinjsarray = {"0":["test",1,100.9,true,["foo","bar"]],"x":"y"};
  12. Kann mich konakona nur anschließen: mach das mit JSON.

    Es ist kleiner, schnell aus einem PHP array erzeugt und einfach in JS anzusprechen!
  13. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!