mongodb - 前端form表单传递数据,在保存和取出的数据格式处理函数 - 非递归
//处理时间部分,将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; }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。