2011-07-08 28 views
7

我有一個關於ArrayObject的問題。我想在ArrayObject類中使用array_slice,但我不能。有沒有辦法做到這一點,而不需要爲實現ArrayObject的類編寫「切片」方法?有ArrayObject上的array_slice(或其他array_ *函數)

$array = $object->getArrayCopy(); 
// modify $array as needed, e.g. array_slice(....) 
$object = new ArrayObject($array); 

一段過去,他的想法,使接受陣列(或可能很多人)接受ArrayObject的以及所有功能:

回答

1

有一個包裝PHP數組函數的類是不是壞主意。將使代碼更清潔。

echo $myAry->slice(10, 5)->reverse()->join(", "); 

就像一般的語言,你知道。

+1

你應該留下一個'_array'的鏈接:http://stereofrog.com/blok/on/080605 – hakre

+0

看起來很酷@hakre。 @stereofrog,如何在slice()方法內訪問數據而不復制數據? – pocesar

4

你總是可以在陣列副本。但我不知道已經走了多遠,如果它仍然遵循。我認爲ArrayObject比實際替換PHP中的本地數組更具行爲性。

相關問題:PHP Array and ArrayObject

+0

這很容易實現,但它在內存上不好。如果這很重要,那麼只需實現您自己的類ArrayObject類即可訪問專用數組數據,這樣就可以直接操作它。 – Matthew

+0

我必須承認我對ArrayObject內部沒有任何線索。 – hakre

+0

我正在尋找避免使用getArrayCopy(),因爲數組的大小(+ 400k項)。 – pocesar