簡體   English   中英

PHP:哈希數據庫結果的最快方法?

[英]PHP: Quickest way to hash database result?

假設我進行查詢:

select * from branches

現在,我得到一個結果:

ID | CODE | Name  | etc...
1  | ABC  | One   | etc...
2  | BED  | Two   | etc...
3  | CPE  | Three | etc...
4  | FEE  | Four  | etc...

我將得到一個可以像這樣使用的數組:

$data[0]->name;

我想更改此數組,因此可以這樣稱呼它:

$data['ABC']->name;

轉換數組以使其鍵為數組項之一的最快方法是什么? 即最好不要循環和分配?

我認為這是最簡單的解決方案。

$assoc = array();
$length = count($data);

for($i = 0; $i < $length; $i++) {
    $assoc[$data[$i]->CODE] = $data[$i]; 
}

print_r($assoc);

盡管我相信有一種解決方案。 但是我不記得它了。

編輯:

更改了循環條件,請致電Raymond。

如果您確實想使用緊湊代碼,則這是一種嵌入式解決方案。

但是,我認為這比簡單的foreach循環更混亂。

$arr = array(your obj array);

$assoc = array();
array_walk($arr, function($v) {global $assoc; $assoc[$v->CODE]=$v;});

print_r($assoc);

您必須在腳本中的某個位置處理結果集並構建此數組,所以為什么不回頭看看呢。

您可能正在做什么!

while ( $row = yourFetch ) {
    $data[] = $row;
endwhile;
return $data;

您可以改為:

while ( $row = yourFetch ) {
    $data[$row->CODE] = $row;
endwhile;
return $data;

然后,您不必在事件之后添加任何處理。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM