//处理时间部分,将ISODate("2014-10-09T18: 37: 50.0Z") 转换成 2014-10-09 18:37:50这种格式
//最多处理6层树形结构数据,当多维数组中的key,包含数组$product_date_col中的任意一个字符,那么就会被处理。
public static function processMongoGetDate($product){
foreach($product as $k1=>$v1){
if(!is_array($v1)&& !is_object($v1)){
}else{
//if(self::contentDate($k1,$product_date_col)){
if($v1->sec){
$v1 = date('Y-m-d H:i:s', $v1->sec);
}
$product[$k1] = $v1;
//}
foreach($v1 as $k2=>$v2){
if(!is_array($v2)&& !is_object($v2)){
}else{
//if(self::contentDate($k2,$product_date_col)){
if($v2->sec){
$v2 = date('Y-m-d H:i:s', $v2->sec);
}
$product[$k1][$k2] = $v2;
//}
foreach($v2 as $k3=>$v3){
if(!is_array($v3)&& !is_object($v3)){
}else{
//if(self::contentDate($k3,$product_date_col)){
if($v3->sec){
$v3 = date('Y-m-d H:i:s', $v3->sec);
}
$product[$k1][$k2][$k3] = $v3;
//}
foreach($v3 as $k4=>$v4){
if(!is_array($v4)&& !is_object($v4)){
}else{
//if(self::contentDate($k4,$product_date_col)){
if($v4->sec){
$v4 = date('Y-m-d H:i:s', $v4->sec);
}
$product[$k1][$k2][$k3][$k4] = $v4;
//}
foreach($v4 as $k5=>$v5){
if(!is_array($v5)&& !is_object($v5)){
}else{
//if(self::contentDate($k5,$product_date_col)){
if($v5->sec){
$v5 = date('Y-m-d H:i:s', $v5->sec);
}
$product[$k1][$k2][$k3][$k4][$k5] = $v5;
//}
foreach($v5 as $k6=>$v6){
if(!is_array($v6)&& !is_object($v6)){
}else{
//if(self::contentDate($k6,$product_date_col)){
if($v6->sec){
$v6 = date('Y-m-d H:i:s', $v6->sec);
}
$product[$k1][$k2][$k3][$k4][$k5][$k6] = $v6;
//}
}
}
}
}
}
}
}
}
}
}
}
}
return $product;
}
/* 作用:前端form传递过来的数据,无论保存,还是查询,都需要转化成mongo的格式
* 处理:处理的为,1.数字字符串转换成float类型,2.日期使用\MongoDate()转换成mongo格式的日期。
* 结果:此函数仅仅是转换 字段类型。最多为6层树形结构表。
*/
public static function processMongoSetData($data,$float_array){
//?gte ?lte
$product = object_to_array($data);
$productfloat = $float_array;
foreach($product as $k1=>$v1){
if(!is_array($v1)&& !is_object($v1)){
if(in_array($k1,$productfloat)){
if(is_numeric($v1)){
$v1 = floatval($v1);
$product[$k1] = $v1;
}
}
if(is_time($v1)){
$product[$k1] = new \MongoDate(strtotime($v1));
}
}else{
foreach($v1 as $k2=>$v2){
if(!is_array($v2)&& !is_object($v2)){
if(in_array($k2,$productfloat)){
if(is_numeric($v2)){
$v2 = floatval($v2);
$product[$k1][$k2] = $v2;
}
}
if(is_time($v2)){
$product[$k1][$k2] = new \MongoDate(strtotime($v2));
}
}else{
foreach($v2 as $k3=>$v3){
if(!is_array($v3)&& !is_object($v3)){
if(in_array($k3,$productfloat)){
if(is_numeric($v3)){
$v3 = floatval($v3);
$product[$k1][$k2][$k3] = $v3;
}
}
if(is_time($v3)){
$product[$k1][$k2][$k3] = new \MongoDate(strtotime($v3));
}
}else{
foreach($v3 as $k4=>$v4){
if(!is_array($v4)&& !is_object($v4)){
if(in_array($k4,$productfloat)){
if(is_numeric($v4)){
$v4 = floatval($v4);
$product[$k1][$k2][$k3][$k4] = $v4;
}
}
if(is_time($v4)){
$product[$k1][$k2][$k3][$k4] = new \MongoDate(strtotime($v4));
}
}else{
foreach($v4 as $k5=>$v5){
if(!is_array($v5)&& !is_object($v5)){
if(in_array($k5,$productfloat)){
if(is_numeric($v5)){
$v5 = floatval($v5);
$product[$k1][$k2][$k3][$k4][$k5] = $v5;
}
}
if(is_time($v5)){
$product[$k1][$k2][$k3][$k4][$k5] = new \MongoDate(strtotime($v5));
}
}else{
foreach($v5 as $k6=>$v6){
if(!is_array($v6)&& !is_object($v6)){
if(in_array($k6,$productfloat)){
if(is_numeric($v6)){
$v6 = floatval($v6);
$product[$k1][$k2][$k3][$k4][$k5][$k6] = $v6;
}
}
if(is_time($v6)){
$product[$k1][$k2][$k3][$k4][$k5][$k6] = new \MongoDate(strtotime($v6));
}
}else{
}
}
}
}
}
}
}
}
}
}
}
}
return $product;
}
mongodb - 前端form表单传递数据,在保存和取出的数据格式处理函数 - 非递归