另一種拼接資料方法,利用陣列的傳引用做的。

2021-07-03 19:28:09 字數 2340 閱讀 3530

<?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語言寫成,所以編譯它理論上沒有問題,只是在實際操作...