照舊,發兩個自用的“小”東西,給點改善意見的多些分,純接分的巡查管理員應該會刪貼的,嘿嘿
註:因為是自用,傳入基本是格式正規的,所以沒有做容錯,這個用者自理
//搜尋檔案中的字串,返回所在行的行號
$lines=new ArrayIterator(file(檔案名稱));$regex = 搜尋用的正則; //必須是正則,因為下面的迭代器是正則迭代器$regexFilter = new RegexIterator($lines, $regex, RegexIterator::GET_MATCH);$items = iterator_to_array($regexFilter);//其實上面這段東東還能更廣泛應用,善用對處理大檔案有很大協助,自己去舉一反三吧$keys = array_keys($items); //如果你搜尋的值不是唯一的,這裡就是多個行號的數組(注意第一行是“0”)$lineNumber = $keys[0]; //如果你搜尋的值是唯一的,這裡就是你要的行號
//對行列(矩陣)數組交換一維和二維鍵
什麼是矩陣數組,每一維鍵名存在且順序是對應的二維數組,簡單舉例就是SQL後得到的二維數組,當然還有更多
注意是順序對應,不然沒有意義,兩維都是數字鍵名也能用,但數字鍵名感覺也是意義不大,因為數字鍵名用交並差很方便的
class squareArray{public function swapRowCol($array){$mit = new MultipleIterator(MultipleIterator::MIT_KEYS_ASSOC);foreach ($array as $key => $value) { $temArr = new ArrayIterator($value); $mit->attachIterator($temArr, $key); }$arr = array();foreach ($mit as $item) array_push($arr,$item); //這裡本來想直接iterator_to_array省迴圈,但出錯,不解if (isset($array[0])) $arr = array_combine(array_keys($array[0]),$arr);return $arr;}}//類中唯寫了一個交換方法,有興趣的人可以自行擴充
SPL代碼很簡潔,可惜文檔太少了,很多都要自己寫後測試看結果,累啊
回複討論(解決方案)
是好久沒來了,還以為你跳出苦海了呢
在沙發上迷糊一會~
過來加點人氣
唉~~~~我這都為分少而蛋痛的不得了,樓主還揮分如土……技術爛傷不起啊~~~~~~~~~~
東西不錯 搬個小板凳看
幾小時沒來 趕緊來接分 高呼代碼共用萬歲.
支援一個,都沒有看到代碼呢
接分積分,很久沒來了
開源萬歲~
謝謝樓主分享,坐等牛人的改進方案
悄悄的路過。。。支援。。。。。
過來加點人氣
是好久沒來了,還以為你跳出苦海了呢
跳出了苦海,但掉進了火坑……唉,掙紮……再掙紮……到岸了-->沼澤啊!
我黨需要樓主這樣的人才,入黨吧。
ArrayIterator 是個高深的東西,文檔太少,表示不解
小東西大用處,不懂PHP,學習來著,坐等高人
112341354354
我背著麻袋來接...
PHP貌似不是很難學......
PHP據說與c很像。。。
有機會可以學學。。
這個號不知道丟了多久了,上來冒個泡
ok!
表示看不懂
恩,不懂,等樓下打救~
好啊,lz威武
你要散分,我就要接分
好東西,謝了..新手可不可以多散一點
先表示支援再說
新手飄過,多學少說。
$lines=new ArrayIterator(file(檔案名稱));
$regex = 搜尋用的正則; //必須是正則,因為下面的迭代器是正則迭代器
$regexFilter = new RegexIterator($lines, $regex, RegexIterator::GET_MATCH);
$items = iterator_to_array($regexFilter);
//其實上面這段東東還能更廣泛應用,善用對處理大檔案有很大協助,自己去舉一反三吧
$keys = array_keys($items); //如果你搜尋的值不是唯一的,這裡就是多個行號的數組(注意第一行是“0”)
$lineNumber = $keys[0]; //如果你搜尋的值是唯一的,這裡就是你要的行號http://www.jianfeimb.com/special/
不認識樓主同學
不會PHP,圍觀樓主散分
接分
不會PHP,圍觀樓主散分
圍觀