aneuryzm
aneuryzm

Reputation: 64834

PHP: how to 'cut' my array?

I have an array

Array
(
    [0] => 0
    [1] => 1
    [2] => 2
    [3] => 3
    [4] => 4
    [5] => 5
)

How can I remove the latest 2 cells and make it shorter ?

Array
(
    [0] => 0
    [1] => 1
    [2] => 2
)

Thanks

Upvotes: 21

Views: 27563

Answers (5)

ircmaxell
ircmaxell

Reputation: 165201

Check out array_slice()

So, if you wanted the first three elements only:

$array = array_slice($array, 0, 3);

If you wanted all but the last three elements:

$array = array_slice($array, 0, -3);

The second parameter is the start point (0 means to start from the begining of the array).

The third parameter is the length of the resulting array. From the documentation:

If length is given and is positive, then the sequence will have that many elements in it. If length is given and is negative then the sequence will stop that many elements from the end of the array. If it is omitted, then the sequence will have everything from offset up until the end of the array.

Upvotes: 46

SubSevn
SubSevn

Reputation: 1028

http://dev.fyicenter.com/faq/php/php_array_function_6.php

Look at the one about truncating, particularly array_splice

Upvotes: 1

codaddict
codaddict

Reputation: 455122

Use array_splice as:

$array = array(0,1,2,3,4,5);
array_splice($array,0,3);

Upvotes: 1

cletus
cletus

Reputation: 625097

Use array_splice():

$new = array_splice($old, 0, 3);

The above line returns the first three elements of $old.

Important: array_splice() modifies the original array.

Upvotes: 4

BoltClock
BoltClock

Reputation: 723729

Slice it. With a knife.

Actually, with this:

array_slice($array, 0, -3);

Assuming you meant cutting off the last 3 elements.

Upvotes: 8

Related Questions