FOR循环和输出数据

时间:2013-05-29 23:40:10

标签: php for-loop pdo

我有一个FOR循环从数据库中获取所有成就,将它们放在显示所有成就的页面上。您可以获得五种不同的“类型”成就,每种类型都有自己的标题。现在我只想获得一种类型的成就,即“普通”类型。以下是我获得成就的代码:

$achievement_info_fetch = $db->prepare("SELECT `achievement_name`,`achievement_desc`,`image`,`type` FROM `achievement_names`");
$achievement_info_fetch->execute();
foreach($achievement_info_fetch->fetchAll(PDO::FETCH_NUM) as $achievement_info => $value){
    $achievement_information[$value[3]] = array('name'=>$value[0],'desc'=>$value[1],'image'=>$value[2]);
    unset($value);
}

那个FOR循环只在每个数组中放入一个成就,如下:

array(5) { ["common"]=> array(3) { ["name"]=> string(11) "TrendSetter"
["desc"]=> string(25) "Invite 6 different people" ["image"]=>
string(23) "sm__0167_megaphone-.png" }...

“共同”类型有三种不同的成就,你可以看到,就像我说的那样,只有一个,我不知道为什么。它可能与我将信息放入数组的方式有关。

之后的另一个问题是输出信息。如果我可以将这个数组放在那里,我应该能够弄清楚如何做到这一点。

1 个答案:

答案 0 :(得分:4)

与你如何把它放在数组中有关:

$achievement_information[$value[3]]

每次在循环中到达时,这将覆盖$achievement_information['common']。我不会使用数字,所以我会用字符串写它:

if (!isset($achievement_information[$value['type']]) {
    $achievement_information[$value['type']] = array();
}
$achievement_information[$value['type']][] = array(/* your code*/)