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() 文档 这是一个转换数组的简单函数;虽然有点粗糙,但它处理一切都很好:

<?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 回答