PHP填充一个关联数组

时间:2015-05-29 12:55:41

标签: php associative-array associative array-push

我正在创建一个data.php文件,它将一个json文件返回到一个html文件,在那里我用data.php文件中的数据填充一个网格。 我需要它是一个以下列形式的关联数组:

[
 {"CompanyName":"Alfreds Futterkiste","ContactName":"Maria Anders","ContactTitle":"Sales Representative"},
 {"CompanyName":"Ana Trujillo Emparedados y helados","ContactName":"Ana Trujillo","ContactTitle":"Owner"},
 {"CompanyName":"Antonio Moreno Taquera","ContactName":"Antonio Moreno","ContactTitle":"Owner"}
]

现在的问题是,我希望这个data.php是通用的,这意味着我不知道列名和列数。 我完成此任务的唯一方法是使用switch语句,但这并不理想(因为我可以创建一些案例,但如果表中还有一个列,那么它也是非常优雅的。)

我敢打赌,这可以做得更好,任何想法?

我尝试使用array_push(),但这不适用于关联数组。

// get columnnames
for ($i = 0; $i < $result->columnCount(); $i++) {
    $col = $result->getColumnMeta($i);
    $columns[] = $col['name'];
}

// fill up array
while ($row = $result->fetch(PDO::FETCH_ASSOC))  {
    switch (count($columns);) {
        case 1 :
            $records[] = array($columns[0] => $row[$columns[0]]);
            break;
        case 2 :
            $records[] = array($columns[0] => $row[$columns[0]], $columns[1] => $row[$columns[1]]);
            break;
        case 3 :
            $records[] = array($columns[0] => $row[$columns[0]], $columns[1] => $row[$columns[1]], $columns[2] => $row[$columns[2]]);
            break;
        case ... // and so on
}   
}

// send data to client
echo json_encode($records);

2 个答案:

答案 0 :(得分:0)

用这个

更改开关代码段

 <Button >
        <Grid>
            <Image Source="..." Stretch="None" />
            <TextBlock Text="test" VerticalAlignment="Center" HorizontalAlignment="Center"/>
        </Grid>
  </Button>

答案 1 :(得分:0)

您可以遍历列:

boxItemSelected