0

私は次のような配列を持っています: $myarray = array("color", "red", "size", "big", "flavor", "bitter");色、サイズ、フレーバーがキーで、その他が値です。配列の値のみを真にループするにはどうすればよいですか。

そのような配列がいくつかあるので、テーブルを作成してその値を次のように表示するだけです。

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

どんな助けでも感謝しますありがとう

4

3 に答える 3

3

あなたの構文は少しずれています。次のような配列を試してください:

$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
于 2012-04-09T03:29:27.013 に答える
2
while (list(, $key) = each($array)) {
    $value = current($array);
    next($array);

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

しかし、はい、この間に合わせのソリューションではなく、適切な連想配列を実際に使用する必要があります。

于 2012-04-09T03:27:26.077 に答える
0

配列を正しく定義していません。

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

次に、foreachで使用します

foreach($myarray as $key => $value) {
   echo $key; //echoes the indexes like color
   echo $value; //echoes values like red
}
于 2012-04-09T03:34:10.113 に答える