php 数组转对象方法
<?php class PerformanceTest { private $time; private $memory; public function begin() { $this->time = $this->getTime(); $this->memory = $this->getMemory(); } public function end() { $this->time = $this->getTime() - $this->time; $this->time = round($this->time,7);//在这里才能格式化时间 $this->memory = $this->getMemory() - $this->memory; $this->memory = $this->convert($this->memory); echo "time:{$this->time}秒<br />"; echo "memory:{$this->memory}<br />"; } public function getTime() { list($usec, $sec) = explode(" ", microtime()); return ((float)$usec + (float)$sec); } public function getMemory() { return memory_get_usage(); } public function convert($size) { $unit=array('b','kb','mb','gb','tb','pb'); return @round($size/pow(1024,($i=floor(log($size,1024)))),2).' '.$unit[$i]; } } $bb = []; for($i=0;$i<50000;$i++) { $bb[] = (object)[ 1,2,3 ]; } $a = new PerformanceTest(); $a->begin(); foreach($bb as $k=>$v) { $bb[$k] = (array)$v; } $a->end(); $a->begin(); json_decode(json_encode($bb),true); $a->end();
foreach 耗时 比 json 少得多
time:0.0150001秒 memory:NAN b time:0.0379999秒 memory:NAN b
浙公网安备 33010602011771号