2012-04-09 11 views
0

私は次のような配列を持っています: $myarray = array("color", "red", "size", "big", "flavor", "bitter");ここで、色、サイズ、フレーバーはキーで、もう1つは値です。配列上の値だけをどのようにループすることができますか? 、すべてのヘルプはそうでも おかげ配列にキーと値を設定します

+0

でそれを使用しています。 foreach.php)?あるいは 'foreach'ループのような基本的なことを扱うPHPチュートリアルを見てください。 –

+0

はい!そのページはGoogleに表示されません – user983248

+0

[間違って](https://www.google.com/#hl=ja&sugexp=epsugrst&gs_nf=1&tok=qrtfH5AQ5NgenBG_TbibEQ&cp=13&gs_id=1e&xhr=t&q=php+foreach+loop&pf=p&output= search&sclient = psy-ab&oq = php + foreach + l&aq = 0P&aqi = g-P1g3&aql = f&gs_l =&pbx = 1&bav = on2、または.r_gc.r_pw.r_cp.r_qf。、cf.osb&fp = 87c6230bd8e448f1&biw = 1599&bih = 897) –

答えて

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

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

を理解されるであろう

<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> 

は、私はそのようないくつかの配列はので、私は唯一のテーブルを作成し、同様にその値を表示する必要がある必要がありこの巧妙な解決策の代わりに、適切な連想配列を実際に使用する必要があります。

3

syntaxは少しオフです。そのような配列をしてみてください。

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

そして、あなたがそうのような値をつかむことができます。

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

または上記配列とを、あなたは、ループのカップルを行うことができます:

<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 そして、ここであなたの配列を変換する簡単な関数です。使用中のその後

<?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); 
?> 

、のようなもの:

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

:あなたは間違って配列を

Key: color 
Value: red 

Key: size 
Value: big 

Key: flavor 
Value: bitter 
+0

それは素晴らしいですが、配列は私が質問に貼り付けられた形式です。配列のスペースを '=>'に置き換える方法はありますか? – user983248

+0

現在の配列にキーを追加する関数の答えを確認してください。この関数は、入力配列が(キー、値、キー、値、キーなど...)のように、順序が1の場合にのみ機能します。 – faino

0

定義されているビットの粗ものの、それだけで罰金、すべてを処理します。その後

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

あなたも** [ドキュメント](http://php.net/manual/en/control-structuresを見て**わざわざましたforeachの

foreach($myarray as $key => $value) { 
    echo $key; //echoes the indexes like color 
    echo $value; //echoes values like red 
} 
関連する問題