{"id":395,"date":"2016-03-05T18:27:27","date_gmt":"2016-03-05T18:27:27","guid":{"rendered":"http:\/\/blog.trungson.com\/?p=395"},"modified":"2016-03-05T18:27:27","modified_gmt":"2016-03-05T18:27:27","slug":"optimization-foreach-empty-array","status":"publish","type":"post","link":"http:\/\/blog.trungson.com\/?p=395","title":{"rendered":"Optimization with foreach() an empty array"},"content":{"rendered":"<p>&lt;?php<br \/>\n$vResult = array();<br \/>\n$vAry = array(&#8216;abc&#8217;);<br \/>\n$vLimit = 10000000;<\/p>\n<p>$vStart = microtime(true);<br \/>\nfor ($i=1;$i&lt;$vLimit; $i++) {<br \/>\nforeach ($vAry as $a) {}<br \/>\n} \/\/ rof<br \/>\n$vResult[] = &#8220;NoEmptyCheck= &#8220;.(microtime(true)-$vStart);<\/p>\n<p>$vStart = microtime(true);<br \/>\nfor ($i=1;$i&lt;$vLimit; $i++) {<br \/>\nif (!empty($vAry)) {<br \/>\nforeach ($vAry as $a) {}<br \/>\n}<br \/>\n} \/\/ rof<br \/>\n$vResult[] = &#8220;WithEmptyCheck= &#8220;.(microtime(true)-$vStart);<\/p>\n<p>echo implode(&#8220;\\n&#8221;,$vResult).&#8221;\\n&#8221;;<\/p>\n<p>\/* Result<\/p>\n<p>For an often-non-empty array scenario:<br \/>\nNoEmptyCheck= 2.10900402069<br \/>\nWithEmptyCheck= 2.59749412537<\/p>\n<p>For an often-empty array scenario:<br \/>\n&#8211; NoEmptyCheck= 1.08695101738<br \/>\n&#8211; WithEmptyCheck= 1.01621007919<\/p>\n<p>*\/<\/p>\n<p>?&gt;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>&lt;?php $vResult = array(); $vAry = array(&#8216;abc&#8217;); $vLimit = 10000000; $vStart = microtime(true); for ($i=1;$i&lt;$vLimit; $i++) { foreach ($vAry as $a) {} } \/\/ rof $vResult[] = &#8220;NoEmptyCheck= &#8220;.(microtime(true)-$vStart); $vStart = microtime(true); for ($i=1;$i&lt;$vLimit; $i++) { if (!empty($vAry)) { foreach ($vAry as $a) {} } } \/\/ rof $vResult[] = &#8220;WithEmptyCheck= &#8220;.(microtime(true)-$vStart); echo implode(&#8220;\\n&#8221;,$vResult).&#8221;\\n&#8221;; \/* [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"_links":{"self":[{"href":"http:\/\/blog.trungson.com\/index.php?rest_route=\/wp\/v2\/posts\/395"}],"collection":[{"href":"http:\/\/blog.trungson.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.trungson.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.trungson.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.trungson.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=395"}],"version-history":[{"count":1,"href":"http:\/\/blog.trungson.com\/index.php?rest_route=\/wp\/v2\/posts\/395\/revisions"}],"predecessor-version":[{"id":396,"href":"http:\/\/blog.trungson.com\/index.php?rest_route=\/wp\/v2\/posts\/395\/revisions\/396"}],"wp:attachment":[{"href":"http:\/\/blog.trungson.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=395"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.trungson.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=395"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.trungson.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=395"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}