如何将我的数据库结果放在三维数组中?

时间:2010-11-13 22:03:53

标签: php mysql arrays

这是我的代码

mysql_select_db("my_db", $con);
$result = mysql_query("SELECT title,text,date FROM news limit 5");

有没有办法从$result中提取标题,文字,日期并将它们放入三维数组?

4 个答案:

答案 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'),
      //...
)