foreach($items as item){
//在$items里面删除$item会影响循环的次数莫???
}
因为我的这个$items数组很长。里面的每个item我只需要使用一次。然后就不会使用了。
我的想法就是使用一个删除一个。这样循环的元素就会越来越少。这个循环的运行时间就会比原来短。这种认识合理莫???
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 36 bytes)
测试的时候这个错误如何解???
迷茫2017-04-10 15:59:20
如果你的数组过大,确实有溢出风险,但是你删除元素浪费的性能更多。
如果你的php version >= 5.5,建议使用php的新特性Generators。使用这种方法的优点是它可以让你在处理大数据集合的时候不用一次性的加载到内存中。甚至你可以处理无限大的数据流。
高洛峰2017-04-10 15:59:20
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 36 bytes)
测试的时候这个错误如何解???
这个错误是你循环的时候php使用的的内存不够了 134217728=128M 建议调整php.ini里面的memory_limit配置
怪我咯2017-04-10 15:59:20
第一,你的遍历完一个删一个的思想不但不会优化程序性能,反而会增加负担,因为for each 遍历是内部指针推动的操作,过程是自动的,耗能很低,而你的想法是每操作完一次删一个元素对这个指针推进过程没有丝毫帮助,反而新增性能负担,因为删除元素也需要一点性能,放大后这些不必要的性能支出就变成一个不必要的累赘了; 第二,提示说明你的内存只有128m,不够用哦