2012-04-09 52 views
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> 

任何帮助将不胜感激 感谢

+0

难道你连** **懒得看[文件](http://php.net/manual/en/control-structures。 foreach.php)?或者看看一个涵盖诸如'foreach'循环等基本事物的PHP教程? – 2012-04-09 03:25:42

+0

是的!但该页面未显示在Google – user983248 2012-04-09 03:27:38

+0

[错误](https://www.google.com/#hl=zh-CN&sugexp=epsugrst&gs_nf=1&tok=qrtfH5AQ5NgenBG_TbibEQ&cp=13&gs_id=1e&xhr=t&q=php+foreach+loop&pf=p&output=搜索和sclient = PSY-AB和OQ = PHP +的foreach + 1&水溶液= 0P&AQI = G-P1g3&AQL = F&gs_l =&PBX = 1&BAV = on.2,or.r_gc.r_pw.r_cp.r_qf。,cf.osb&FP = 87c6230bd8e448f1&BIW = 1599&波黑= 897)。 – 2012-04-09 03:30:04

回答

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

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

但是,是的,你应该真的使用适当的关联数组来代替这个临时解决方案。

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 2012-04-09 03:36:39

+0

查看我的答案,以获得将键添加到当前数组的功能;这个函数只有在顺序是一对一的情况下才起作用,例如输入数组(键,值,键,值,键等)。 – faino 2012-04-09 04:00:09

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 
}