<?php /** * @package a doubly linked list test * @author zhaoyingnan<zhaoyn@bbtree.com> * @copyright * @version * @since **/ /* SplDoublyLinkedList * 方法 SplDoublyLinkedList implements Iterator , ArrayAccess , Countable { public __construct ( void ) public void add ( mixed $index , mixed $newval ) 在指定的索引位置插入值 public mixed bottom ( void ) 查看开始位置的节点 public mixed top ( void ) 查看结束位置的节点 public int count ( void ) 返回所有的元素的数量 public void rewind ( void ) 倒回迭代器的开始 public mixed current ( void ) 返回当前节点的信息 public mixed key ( void ) 返回当前节点的索引 public void setIteratorMode ( int $mode ) 设置迭代的模式 public int getIteratorMode ( void ) 返回迭代的模式 public bool isEmpty ( void ) 检查该双向列表是否是空的 public void next ( void ) 移动到下一个节点 public void prev ( void ) 移动到上一个节点 public bool offsetExists ( mixed $index ) public mixed offsetGet ( mixed $index ) public void offsetSet ( mixed $index , mixed $newval ) public void offsetUnset ( mixed $index ) public mixed pop ( void ) 从双向列表的末尾弹出一个节点 public void push ( mixed $value ) 向双向列表的末尾推入一个元素 public mixed shift ( void ) 从双向列表的头部弹出一个节点 public void unshift ( mixed $value ) 向双向列表的头部插入一个元素 public string serialize ( void ) public void unserialize ( string $serialized ) public bool valid ( void ) 检查双向列表是否有更多的节点 } */ $SplDoublyLinkedList = new SplDoublyLinkedList(); $mysqli = new mysqli('114.55.104.117', 'db_writer', 'ka_32^%*ko', 'db_community'); if($mysqli->connect_errno) exit('Mysql connect error ' . $mysqli->connect_error); $query = "show tables like '%zhs_user_timeline_%'"; $result = $mysqli->query($query); if(!$result) exit('error ' . $mysqli->error); while($row = $result->fetch_row()) { //list($arData[]) = array_values($row); $SplDoublyLinkedList->push($row[0]); } $result->close(); $mysqli->close(); echo count($SplDoublyLinkedList), PHP_EOL; $SplDoublyLinkedList->rewind(); while($SplDoublyLinkedList->valid()) { var_export($SplDoublyLinkedList->shift()); echo PHP_EOL; echo count($SplDoublyLinkedList), PHP_EOL; $SplDoublyLinkedList->next(); } echo count($SplDoublyLinkedList); ?>