所以我打印一个数组,生成如下:
while ($twitgroup = mysql_fetch_array($resulttwitter)) {
print_r($twitgroup);
}
我得到了这个输出(有多个数组,依赖于行)。
Array ( [0] => composed [category] => composed [1] => 330 [value] => 330 [2] => 1344384476.94 [timestamp] => 1344384476.94 ) Array ( [0] => elated [category] => elated [1] => 2034 [value] => 2034 [2] => 1344384476.94 [timestamp] => 1344384476.94 ) Array ( [0] => unsure [category] => unsure [1] => 2868 [value] => 2868 [2] => 1344384476.94 [timestamp] => 1344384476.94 ) Array ( [0] => clearheaded [category] => clearheaded [1] => 1008 [value] => 1008 [2] => 1344384476.94 [timestamp] => 1344384476.94 ) Array ( [0] => tired [category] => tired [1] => 2022 [value] => 2022 [2] => 1344384476.94 [timestamp] => 1344384476.94 )
我希望能够在这里提取个人价值,但我遇到了麻烦。我试图在这些数组上使用while循环,但我想也许这是错误的。我是否应该使用foreach循环,然后在该foreach的输出上访问该数组的每个元素?
比如说,我想抓住组合,以及组成的值。我该怎么做?我在Python中使用数组/列表非常好,但我在PHP中使用数组的经验有点缺乏。
答案 0 :(得分:1)
使用
while ($row = mysql_fetch_assoc($resulttwitter)) {
$twitgroup[$row['category']] = $row;
}
echo $twitgroup['composed']['value']; // outputs 330
echo $twitgroup['composed']['timestamp']; // outputs 1344384476.94
如果您只想categories
和values
使用
while ($row = mysql_fetch_assoc($resulttwitter)) {
$twitgroup[$row['category']] = $row['value'];
}
echo $twitgroup['composed']; // outputs 330
答案 1 :(得分:0)
将mysql_fetch_array
替换为mysql_fetch_assoc
以消除重复项。然后这个:
while ($twitgroup = mysql_fetch_assoc($resulttwitter))
{
foreach ($twitgroup as $key => $value)
{
echo "$key => $value\n";
}
}
您还可以按名称获取元素:
while ($twitgroup = mysql_fetch_assoc($resulttwitter))
{
echo "category => " . $twitgroup["category"] . "\n";
echo "value => " . $twitgroup["value"] . "\n";
echo "timestamp => " . $twitgroup["timestamp"] . "\n";
}
答案 2 :(得分:0)
mysql_fetch_array在结果中包含两个字段,一个与数字键相关联,另一个与字段名称相关联。
这就是你有
的原因 [0] => composed
[category] => composed
[1] => 330
[value] => 330
您可以访问以下字段:
$twitgroup[0]
或者喜欢:
$twitgroup['category']
因此,您可以访问每一行,如:
while ($twitgroup = mysql_fetch_array($resulttwitter)) {
print $twitgroup['category']; // or print $twitgroup['0'];
print $twitgroup['value']; // // or print $twitgroup['1'];
// or by the corresponding numeric indices.
}
如果你想将结果限制为数字或关联数组,请在mysql_fetch_array中添加一个额外的标志(result_type):
mysql_fetch_array ($resulttwitter, MYSQL_ASSOC) // or mysql_fetch_array ($resulttwitter, MYSQL_NUM)
说完这一切之后,我们非常不鼓励在PHP中使用mysql_ *函数,因为它们已被弃用。您应该使用mysqli或PDO代替。
答案 3 :(得分:0)
这就是你所拥有的:
Array ( [0] => composed [category] => composed [1] => 330 [value] => 330 [2] => 1344384476.94 [timestamp] => 1344384476.94 ) Array ( [] => [] => ... ) ...
PHP中的数组称为关联数组,因为它们可以具有 要么是整数,字符串或其他任何键。 你有一个包含数组的数组。
要访问各个字段,最方便的是使用a 对于每个循环。
$record=0;
foreach ($array as $k => $subArray) {
$record++;
foreach($subArray as $field => $value) {
printf("%d: %s = %s\n", $record, $field, $value);
}
}
在我看来,你取得的方式有问题 数据,因为一半的字段似乎是多余的。您可以使用字符串键 找出内容。所以不需要n =>名称条目。
如果无法帮助我,我猜你可以用
迭代这些值$ix=0;
for ($i=0; $i < (count($array)/2); $i++){
printf("%s\n", $array[$ix]);
$ix++;
}