PHP: How to delete all array elements after an index


This question already has an answer here:


Without making use of loops.
    $myArrayInit = [1 => 'red', 30 => 'orange', 25 => 'velvet', 45 => 'pink']; //<-- Your actual array
    $offsetKey = 25; //<--- The offset you need to grab

    //Lets do the code....
    $n = array_keys($myArrayInit); //<---- Grab all the keys of your actual array and put in another array
    $count = array_search($offsetKey, $n); //<--- Returns the position of the offset from this array using search
    $new_arr = array_slice($myArrayInit, 0, $count + 1, true);//<--- Slice it with the 0 index as start and position+1 as the length parameter.

Output :

    [1] => red
    [30] => orange
    [25] => velvet


$arr = array(1=>red, 30=>orange, 25=>velvet, 45=>pink);
$pos = array_search('30', array_keys($arr));
$arr= array_slice($arr,0,$pos+1,true);
echo "<pre>";

See demo

I'd iterate over the array up until you reach the key you want to truncate the array thereafter, and add those items to a new - temporary array, then set the existing array to null, then assign the temp array to the existing array.

This uses a flag value to determine your limit:

$myArrayInit = array(1=>'red', 30=>'orange', 25=>'velvet', 45=>'pink');

$new_array = delIndex(30,$myArrayInit);

function delIndex($limit,$array){


    foreach($array as $ind=>$val){


    return $array;

Try this:

function delIndex($afterIndex, $array){
    $flag = false;
    foreach($array as $key=>$val){
        if($flag == true)
        if($key == $afterIndex)
             $flag = true; 
    return $array;

This code is not tested

Need Your Help

Convert Xamarin.Forms.Color to platform specific color

android ios colors xamarin xamarin.forms

I'm looking for a way to convert a Xamarin.Forms.Color to a platform specific color. For example the Android.Graphics.Color for Android.

Accessing the ScrollViewer of a ListBox from C#

c# wpf xaml listbox scrollviewer

I'd like to change the properties of a ScrollViewer of a ListBox from C#.