這是我的代碼如何將我的數據庫結果放入3維數組中?
mysql_select_db("my_db", $con);
$result = mysql_query("SELECT title,text,date FROM news limit 5");
有沒有辦法從$result
提取標題,文字,日期和把他們分爲3維數組?
這是我的代碼如何將我的數據庫結果放入3維數組中?
mysql_select_db("my_db", $con);
$result = mysql_query("SELECT title,text,date FROM news limit 5");
有沒有辦法從$result
提取標題,文字,日期和把他們分爲3維數組?
我想你以後實際上是一個二維數組(其中第二個維度有三個要素)。 (如果我錯了指正。)
一個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'];
?>
不必要的複雜。 foor循環與$ got [$ i] = $ row相同;' – 2010-11-13 22:13:29
啊,這很好,謝謝。正如我引用了不同的頁面,我不會更改代碼,但我會讓您的評論突出顯示可能的改進:-) – aioobe 2010-11-13 22:17:32
不,它只是複雜的代碼,而不是更多的功能。或者,也許我沒有看到它。請解釋爲什麼需要'$ keys'。 – 2010-11-13 22:19:09
什麼
$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++;
}
你缺少一個']'而不需要'$ i'計數器,'$ array []'很好。不知何故,結構沒有多大意義。您將創建一個數組,其中包含包含具有一個元素(這是一個數組)的數組的數組。有一個數組太多了;) – 2010-11-13 22:12:26
是不知道爲什麼OP想要一個3d陣列(我猜只是一個錯誤)但需要$ i計數器的原因是,如果你這樣做: $ array [] =陣列(); $ arra [] [$ row ['title'] = array(// stuff); 如果你print_r你將在數組中有兩個元素而不是一個。 – 2010-11-13 22:21:05
那麼爲什麼不呢:'$ array [] = array($ row ['title'] => array(// stuff));'或者甚至更好(是的,我知道OP說3維,但是你的例子只是生成複雜的結構):'$ array [$ row ['title']] = array(// stuff));' – 2010-11-13 22:23:41
我很想知道是什麼...你需要一個三維陣列,但確定:
$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;
奇怪,...
如果我們已經在猜測,這裏是雷:
$results = array();
while(($row = mysql_fetch_assoc($result))) {
$results[] = $row;
}
,這將創造一個這樣的數組:
array(array('title' => 'foo',
'text' => 'bar',
'date' => 'baz'),
//...
)
你什麼はnt你的三維數組看起來像llike? – 2010-11-13 22:05:36
你的意思是二維嗎?如果第二維包含三個值,例如'array('title','text','date'),array('title','text','date'))'? – 2010-11-13 22:06:56
數組的數組將爲您的3D數組? – 2010-11-13 22:13:19