YII物件結果轉為陣列或直接輸入JSON格式

2021-06-27 16:07:40 字數 950 閱讀 5087

轉換為數組組的方法

使用yii 的active record 來獲取查詢結果的時候,返回的結果集是乙個物件型別的,有時候為了資料處理的方便希望能夠轉成陣列返回。比如下面的方法:

// 查詢滿足指定條件的結果中的第一行

$post=post::model()->find($condition,$params);

// 查詢具有指定主鍵值的那一行

$post=post::model()->findbypk($postid,$condition,$params);

// 查詢具有指定屬性值的行

$post=post::model()->findbyattributes($attributes,$condition,$params);

返回一條結果的時候直接用 $post->attributes; 就可以了。

如果要返回findall陣列呢,要怎麼處理呢

有兩種方法:

第一種是使用自定義的函式,如下

/**

* 簡化findall資料

* */

function simplifydata($data)

return $newdata;

}

然後使用函式直接轉換結果

第二種是使用很簡單的方法:

$products = protuan::model()->findall($criteria);

$products = json_decode(cjson::encode($products),true);

作用是就先將findall結果先轉成json格式,然後再轉為陣列.

至於findall轉為josn格式其實就是使用

cjson::encode

陣列轉為物件

1.js裡將兩個陣列轉為物件,第乙個陣列為key,第二個為value。如 1,2,5 和 18,8,6 轉換成物件。2.js裡將多個陣列轉為物件,每個陣列只有兩個值,轉成的物件以每個陣列裡的首位為key,第二位為value。如 a,1 和 b,2 c,3 轉換成物件。只要使用underscore.j...

C DataTable轉為物件或物件列表

需求 從datatable中直接生成指定類的物件或物件列表 使用 datatable.tolistmodel using system using system.collections.generic using system.data using system.linq using system....

C DataTable轉為物件或物件列表

需求 從datatable中直接生成指定類的物件或物件列表 使用 datatable.tolistmodel using system using system.collections.generic using system.data using system.linq using system....