php常见数据结构和算法

来源:赵克立博客 分类: PHP 标签:运维算法结构PHP发布时间:2019-05-30 14:45:06最后更新:2019-06-18 09:05:33浏览:842
版权声明:
本文为博主原创文章,转载请声明原文链接...谢谢。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);



微信号:kelicom QQ群:215861553 紧急求助须知
Win32/PHP/JS/Android/Python