哪一個應該用來操縱數據,數組或數組對象? 像搜索,排序和其他數組操作。PHP Array和ArrayObject
26
A
回答
27
基本型爲array
。這是一個可以寫入,讀取和循環訪問的鍵和值的映射。
ArrayObject
是一個可以擴展以創建行爲就像它們是數組一樣的對象的類。它實現了像count
和sort
這樣的方法,使您可以像處理數組一樣處理對象。它是SPL(標準PHP庫)的一部分。
通常你會使用array
。你會知道你什麼時候需要ArrayObject
。
0
大多數情況下,數組就是所有需要的。在特定用途擴展功能時,ArrayObject最爲有用。
1
2
ArrayObject的在需要序列化時最爲有用。
您也可以通過擴展arrayObject來創建自己的集合類。然後你可以序列化你的類對象來傳輸數據。
對於簡單和通常的操作數組比arrayObject更具可比性。
0
Array對象可以被擴展並且功能被超越。 例如,您的append()函數調用可能父::追加()
8
在性能方面之前格式的數字到小數點後兩位,你不會注意到的array
和ArayObject
之間的真正區別。 我運行一個簡單的測試。這個想法是使用array()和新的ArrayObject創建數組,並用越來越多的值填充它們。
<?php
for($i = 0; $i < 2; $i++){
$method = $i == 0 ? 'array' : 'ArrayObject';
for($j = 0; $j < 7 ; $j++){
for($k = 0; $k < 100; $k++){
$max = pow(10,$j);
$array = $method == 'array' ? array() : new ArrayObject;
$time = explode(' ',microtime());
$sTime = $time[0] + $time[1];
for($l = 0; $l < $max; $l++){
$array[] = 'foo ' . $i . ':' . $j . ':' . $k . ':' . $l;
}
$time = explode(' ',microtime());
$eTime = $time[0] + $time[1];
$results[$method][$max][] = $eTime - $sTime;
}
}
}
?>
結果
method lines average (µs) difference between methods (µs)
array 1 2.470 -1.044
array 10 8.452 +0.315
array 100 71.862 +10.719
array 1,000 773.826 +141.962
array 10,000 7,868.731 -675.359
array 100,000 76,954.625 -17,665.510
array 1,000,000 801,509.550 -84,356.148
ArrayObject 1 3.514 +1.044
ArrayObject 10 8.137 -0.315
ArrayObject 100 61.142 -10.719
ArrayObject 1,000 631.864 -141.962
ArrayObject 10,000 8,544.090 +675.359
ArrayObject 100,000 94,620.135 +17,665.510
ArrayObject 1,000,000 885,865.698 +84,356.148
平均是100個測試每種方法和線的每個數字的平均時間。 方法之間的差異是非常微不足道的(84微秒,當你處理一百萬行時......)
我已經多次運行此測試,並且因爲差異始終是微秒問題,有時一種方法是一個測試過程中更有效率,那麼接下來的測試過程中效率低......
選擇將取決於您的需求:
- ,如果你處理簡單數組,並做圈狀
foreach()
或計算平均而言,一個array
就夠了, - 如果您需要更復雜的迭代,排序,過濾......使用您自己的迭代器方法擴展
ArrayObject class
更容易...
相關問題
- 1. PHP,SPL,ArrayObject的,ArrayObject的:: STD_PROP_LIST
- 2. Filter ArrayObject(PHP)
- 3. PHP - 排序ArrayObject
- 4. 通過arrayObject的PHP循環
- 5. 可憐的PHP ArrayObject設計
- 6. 在PHP中銷燬ArrayObject
- 7. PHP ArrayObject內部工作
- 8. PHP Array Combine和Sum
- 9. Multidimensional ArrayObject
- 10. ArrayObject,getIterator();
- 11. Array or not Array [PHP]
- 12. PHP array to multidimensional array
- 13. PHP中的ArrayObject如何工作?
- 14. PHP的ArrayObject是否有in_array等價物?
- 15. PHP中的ArrayObject的Bads聲明
- 16. 用arrayObject處理php致命異常
- 17. PHP Array和Google Analytics V3 API
- 18. PHP下一個($ array)和Javascript
- 19. PHP Array和Switch Case Statement
- 20. php array - in_array和/或array_intersect
- 21. 從ArrayObject的
- 22. array array of php php by 2字符串和數字
- 23. php prev next array from mysql array
- 24. php json_encode big array
- 25. PHP Array結構
- 26. PHP - 從Array
- 27. array in loop php
- 28. array to string(php)
- 29. PHP foreach array key
- 30. assoc array php mysql
你有沒有想要做什麼的例子? – willoller 2009-09-09 15:32:20
我需要使用Array進行搜索,排序和其他複雜的操作,基本上是爲了在算法中使用它。所以我需要知道哪一個更好更快。 – Imrul 2009-09-09 17:38:25