2012-04-09 8 views
0

Ich habe auf Array wie: wo Farbe, Größe und Geschmack sind die Schlüssel und die anderen sind die Werte. Wie kann ich die Werte nur für das Array auf True zurücksetzen?set Schlüssel und Werte auf Array

Ich habe ein paar Arrays wie, dass man so wie ich muss nur eine Tabelle erstellen und ihre Werte anzuzeigen:

<table> 
<thead> 
    <tr> 
    <th>Color</th> 
    <th>Size</th> 
    <th>Flavor</th> 
    </tr> 
</thead> 
<tbody> 
     // I'm stuck here because I don't know how to get the values of each array 
</tbody> 
</table> 

Jede Hilfe wird Dank

+0

Haben Sie selbst ** ** Mühe zu betrachten [Dokumentation] (http://php.net/manual/en/control-structures. foreach.php)? Oder sehen Sie sich ein PHP-Tutorial an, das grundlegende Dinge wie "foreach" -Schleifen behandelt? –

+0

JA! aber diese Seite wurde nicht in Google angezeigt. – user983248

+0

[Falsch] (https://www.google.com/#hl=de&sugexp=epsugrst&gs_nf=1&tok=qrtfH5AQ5NgenBG_TbibEQ&cp=13&gs_id=1e&xhr=t&q=php+foreach+loop&pf=p&output= Suche & sclient = psy-ab & oq = php + foreach + l & aq = 0P & aqi = g-P1g3 & aql = f & gs_l = & pbx = 1 & bav = on.2, oder.r_gc.r_pw.r_cp.r_qf., cf.osb & fp = 87c6230bd8e448f1 & biw = 1599 & bih = 897). –

Antwort

2
while (list(, $key) = each($array)) { 
    $value = current($array); 
    next($array); 

    echo $key, ': ', $value, PHP_EOL; 
} 

Aber ja klar, Sie sollten wirklich ein richtiges assoziatives Array anstelle dieser provisorischen Lösung verwenden.

3

Ihr syntax ist ein wenig aus; ein Array versuchen, wie so:

$myarray=array(
    'color'=>'red', 
    'size'=>'big', 
    'flavor'=>'bitter' 
); 

Und dann können Sie die Werte wie so greifen:

$color=$myarray['color']; 
$size=$myarray['size']; 
$flavor=$myarray['flavor']; 

Oder mit dem Array oben, könnten Sie ein paar Schleifen tun:

<table> 
    <thead> 
     <tr> 
      <?php 
       $keys=array_keys($myarray); 
       foreach($keys as $key) { 
        echo('<th>'.$key.'</th>'); 
       } 
      ?> 
     </tr> 
    </thead> 
    <tbody> 
     <tr> 
      <?php 
       foreach($myarray as $val) { 
        echo('<th>'.$val.'</th>'); 
       } 
      ?> 
     </tr> 
    </tbody> 
</table> 

array_keys() documentation Und hier ist eine einfache Funktion, um Ihr Array zu konvertieren; obwohl ein wenig grob, behandelt es alles in Ordnung:

<?php 
    function addKey($arr) { 
     $newArr=array(); 
     $key=null; 
     foreach($arr as $val) { 
      if(!$key) { 
       $key=$val; 
      } else { 
       $newArr[$key]=$val; 
       $key=null; 
      } 
     } 
     return($newArr); 
    } 
    $myarray=array('color','red','size','big','flavor','bitter'); 
    $myNewArray=addKey($myarray); 
?> 

Dann in Gebrauch, so etwas wie:

<?php 
    foreach($myNewArray as $key=>$val) { 
     echo('<p>Key: '.$key.'<br />Value: '.$val.'</p>'); 
    } 
?> 

Welche folgende Ausgabe:

Key: color 
Value: red 

Key: size 
Value: big 

Key: flavor 
Value: bitter 
+0

Das ist toll, aber das Array ist in dem Format, das ich auf die Frage eingefügt. Gibt es eine Möglichkeit, die Leerzeichen im Array durch '=>' zu ersetzen? – user983248

+0

Überprüfen Sie meine Antwort auf eine Funktion zum Hinzufügen von Schlüsseln zu Ihrem aktuellen Array; Diese Funktion funktioniert nur, wenn die Reihenfolge eins zu eins ist, wie in der Eingabe-Array geht (Schlüssel, Wert, Schlüssel, Wert, Schlüssel, etc ...). – faino

0

Sie definieren falsch Array.

$myarray=array(
    'color'=>'red', 
    'size'=>'big', 
    'flavor'=>'bitter' 
); 

es dann mit foreach verwenden

foreach($myarray as $key => $value) { 
    echo $key; //echoes the indexes like color 
    echo $value; //echoes values like red 
} 
Verwandte Themen