在数组上设置键和值

时间:2012-04-09 03:23:23

标签: php arrays foreach

我在数组上喜欢: $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>

任何帮助将不胜感激 感谢

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:2)

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

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

但是,是的,你应该使用一个合适的关联数组而不是这个临时解决方案。

答案 2 :(得分: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
}
相关问题