SplFixedArray instance of PHPSPL standard library

Source: Internet
Author: User
This article describes how to use SplFixedArray in the phpspl standard library. SplFixedArray is mainly used to process array-related functions. It is fixed-length and faster than normal Array Processing, if you need a friend

This article mainly introduces the use of SplFixedArray in the php spl standard library. SplFixedArray is mainly used to process array-related functions. It is fixed-length and faster than normal Array Processing, if you need a friend

SplFixedArray is mainly used to process array-related functions. Unlike Common php arrays, SplFixedArray is an array with fixed length and key names ,, the advantage is faster processing than normal arrays.

Check my local Benchmark test:

Ini_set ('memory _ limit ', '12800m'); for ($ size = 10000; $ size <10000000; $ size * = 4) {echo PHP_EOL. "Testing size: $ size ". PHP_EOL; for ($ s = microtime (true), $ container = Array (), $ I = 0; $ I <$ size; $ I ++) $ container [$ I] = NULL; echo "Array ():". (microtime (true)-$ s ). PHP_EOL; for ($ s = microtime (true), $ container = new SplFixedArray ($ size), $ I = 0; $ I <$ size; $ I ++) $ container [$ I] = NULL; echo "SplArray ():". (microtime (true)-$ s ). PHP_EOL ;}

The result is as follows:

Testing size: 10000 Array (): 0.004000186920166 SplArray (): 0.0019998550415039 Testing size: 40000 Array (): 0.017001152038574 SplArray (): 0.0090007781982422 Testing size: 160000 Array (): 0.050002098083496 SplArray (): 0.046003103256226 Testing size: 640000 Array (): 0.19701099395752 SplArray (): 0.16700983047485 Testing size: 2560000 Array (): 0.75704312324524 SplArray (): 0.67303895950317

In general, SplFixedArray is 20% ~ Faster than php array ~ 30%, so if you are dealing with a large number of fixed-length arrays, it is strongly recommended to use.
The summary of the SplFixedArray class is as follows:

SplFixedArray implements Iterator, ArrayAccess, Countable {/* Method */public _ construct ([int $ size = 0]) public int count (void) public mixed current (void) public static SplFixedArray fromArray (array $ array [, bool $ save_indexes = true]) public int getSize (void) public int key (void) public void next (void) public bool offsetExists (int $ index) public mixed offsetGet (int $ index) public void offsetSet (int $ index, mixed $ newval) public void offsetUnset (int $ index) public void rewind (void) public int setSize (int $ size) public array toArray (void) public bool valid (void) public void _ wakeup (void )}

Use SplFixedArray:

$ Arr = new SplFixedArray (4); $ arr [0] = 'php'; $ arr [1] = 1; $ arr [3] = 'python '; // traversal, $ arr [2] is nullforeach ($ arr as $ v) {echo $ v. PHP_EOL;} // obtain the array length echo $ arr-> getSize (); // 4 // increase the array length $ arr-> setSize (5 ); $ arr [4] = 'new one'; // catch exceptions try {echo $ arr [10];} catch (RuntimeException $ e) {echo $ e-> getMessage ();}

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.