这是我的代码
mysql_select_db("my_db", $con);
$result = mysql_query("SELECT title,text,date FROM news limit 5");
有没有办法从$result
中提取标题,文字,日期并将它们放入三维数组?
答案 0 :(得分:0)
怎么样?
$result = mysql_query("SELECT title,text,date FROM news limit 5");
$array = array();
$i = 0;
while( $row = mysql_fetch_assoc( $result ) {
$array[$i] = array();
// i'm just guessing at what sort of array you want
$array[$i][$row['title'] = array( 'text' => $row['text'], 'date' => $row['date'] );
$i++;
}
答案 1 :(得分:0)
我认为你所追求的实际上是一个二维数组(其中第二个维度有三个元素)。 (如果我错了,请纠正我。)
mysql_fetch_array文档中的一条评论有一个答案:
(Disclamer:这段代码不必要的冗长。虽然我从上面的网页上复制了它,但我不想改变它。为了改进,我参考了评论。)
<?php
function mysql_fetch_rowsarr($result, $numass=MYSQL_BOTH) {
$i=0;
$keys=array_keys(mysql_fetch_array($result, $numass));
mysql_data_seek($result, 0);
while ($row = mysql_fetch_array($result, $numass)) {
foreach ($keys as $speckey) {
$got[$i][$speckey]=$row[$speckey];
}
$i++;
}
return $got;
}
?>
然后您应该能够将此功能用作
<?
mysql_select_db("my_db", $con);
$result = mysql_query("SELECT title,text,date FROM news limit 5");
$arr = mysql_fetch_rowsarr($result);
$row_2_title = $arr[2]['title'];
?>
答案 2 :(得分:0)
我有兴趣知道......你需要一个三维数组但是没问题:
$dim = array();
$result = mysql_query(...);
while ( $row = mysql_fetch_assoc($result) )
// Whatever you want to save in that particular bucket,
// I'll be using the result set
$dim[$row['title']][$row['text']][$row['date']] = $row;
奇怪,......
答案 3 :(得分:0)
如果我们已经在猜测,这是我的:
$results = array();
while(($row = mysql_fetch_assoc($result))) {
$results[] = $row;
}
将创建一个这样的数组:
array(array('title' => 'foo',
'text' => 'bar',
'date' => 'baz'),
//...
)