<?php
/** * total用來做分頁,在model裡寫的
* yaf中所有的多條查詢都至少是二維的陣列,為了方便,我定義成三維的
* 第二個和第三個陣列都是以user_id為主鍵,沒有自增id
* 假設,分別查了3個表,得到如下三個陣列
* foreach遍歷拼接資料開始
*///假設從控制器里查到三個陣列,分別如下。
$infoarray = array(
'total' => 3,
'rows' => array(
0 => array(
'id' => 1,
'user_id' => 1001,
'name' => '張三丰',
),1 => array(
'id' => 2,
'user_id' => 1002,
'name' => '李司機',
),2 => array(
'id' => 3,
'user_id' => 1003,
'name' => '王武功',
),),);
$arrayage = array(
'total' => 3,
'rows' => array(
0 => array(
'user_id' => 1001,
'age' => 21,
'phone' => '13900000001',
),1 => array(
'user_id' => 1002,
'age' => 23,
'phone' => '13900000002',
),2 => array(
'user_id' => 1003,
'age' => 18,
'phone' => '13900000003',
),),);
$arrayphone = array(
'total' => 3,
'rows' => array(
0 => array(
'user_id' => 1001,
'phone' => '13900000001',
),1 => array(
'user_id' => 1002,
'phone' => '13900000002',
),2 => array(
'user_id' => 1003,
'phone' => '13900000003',
),),);
//這個方法一般寫在model裡,
function formatarray($infoarray, $arrayage, $arrayphone)
} if(!empty($arrayphone)) }
foreach($infoarray['rows'] as &$val)
if($arrayagearr)
}return $infoarray;
}var_dump(formatarray($infoarray, $arrayage, $arrayphone));die();
/** * 舉例:$arrayphonearr[$val['user_id']]['phone'] = $val['phone'];
* 總體來說,等號左邊,是將$arrayphonearr裡的user_id作為鍵名,
* phone是自定義的第二維陣列鍵名,
* 等號右邊,是值。
* foreach($infoarray['rows'] as &$val)
* &符號是傳的陣列的引用位址,而不是陣列的值。
*/
補充:
$order_info = $database_order->field(true)->where($order_condition)->select();
foreach($order_info as $key => $val)
$store_where['store_id'] = array('in', $storeid);
$store_info = $database_store->field(true)->where($store_where)->select();
$now_order = $orderobj->formatarray($order_info, $store_info, $merchant_info, $deliversupplyinfo);
補充:不能直接查詢整個表中的資料,那樣得不償失。
應該像補充的,有範圍的查詢,再去整合資料。用in是比較好的選擇。
呼叫方法的另一種方式
一般我們呼叫乙個類的方法,都是通過這個類本身 static方法 或者它的乙個例項去呼叫.比如 inte ce iservice void runservice icontext context class servicea iservice public override void runservi...
資料庫的另一種設計方法
最近參與了乙個專案的開發,在開發的過程中發現資料庫的設計有點意思,順便拿來給大家分享一下。對於乙個專案來說,資料庫無疑是很重要,如果資料庫設計不好,專案就很難開發的優秀,所以乙個資料庫的設計就顯得尤其重要。在我這個專案中,有乙個訂單表 orderform 乙個商品資訊表 googsinfo 乙個系統...
另一種vc編譯驅動方法
vc6只是乙個ide,可以方便的呼叫編譯器,鏈結器,標頭檔案,庫檔案,如果編輯和編譯驅動能整合在一起,這樣可以提高開發效率。對於普通的win32應用程式,vc6已經預設支援了,而對於驅動程式沒有設定好的工程嚮導。其實驅動程式也就是乙個sys,是通過c語言寫成,所以編譯它理論上沒有問題,只是在實際操作...