php常见数据结构和算法
版权声明:
本文为博主原创文章,转载请声明原文链接...谢谢。o_0。
更新时间:
2019-06-18 09:05:33
温馨提示:
学无止境,技术类文章有它的时效性,请留意文章更新时间,如发现内容有误请留言指出,防止别人"踩坑",我会及时更新文章
php实现foreach遍历结构
class Test implements Iterator { private $item = array('id' => 1, 'name' => 'php'); /** * 将索引指定到首个元素 * {@inheritDoc} * @see Iterator::rewind() */ public function rewind() { reset($this->item); } /** * 返回当前元素 * {@inheritDoc} * @see Iterator::current() */ public function current() { return current($this->item); } /** * 返回当前元素键值 * {@inheritDoc} * @see Iterator::key() */ public function key() { return key($this->item); } /** * 索引指向下一个元素 * {@inheritDoc} * @see Iterator::next() */ public function next() { return next($this->item); } /** * 判断下个是否有下个元素 * {@inheritDoc} * @see Iterator::valid() */ public function valid() { return ($this->current() !== false); } } //测试 $t = new Test; foreach ($t as $k => $v) { echo $k, '--->', $v, "\n"; }
冒泡排序算法
/** * 冒泡排序升序 * @param [type] &$arr 数组 * @param boolean $desc 默认升序 * @return [type] */ function bubble_sort(&$arr, $desc = false) { for ($i = 0, $len = count($arr); $i < $len; $i++) { for ($j = 1; $j < $len - $i; $j++) { if ($desc) { if ($arr[$j - 1] < $arr[$j]) { $temp = $arr[$j - 1]; $arr[$j - 1] = $arr[$j]; $arr[$j] = $temp; } } else { if ($arr[$j - 1] > $arr[$j]) { $temp = $arr[$j - 1]; $arr[$j - 1] = $arr[$j]; $arr[$j] = $temp; } } } } } // 测试 $arr = array(10, 2, 36, 14, 10, 25, 23, 85, 99, 45); bubble_sort($arr, true); print_r($arr);