How to remove integers in array less than X?

前端 未结 2 1069
暖寄归人
暖寄归人 2020-12-11 18:18

I have an array with integers of values from 0 to 100. I wish to remove integers that are less than number X and keep the ones that are equal or greater than number X.

2条回答
  •  抹茶落季
    2020-12-11 18:53

    Smarter than generating an array that is too big then cutting it down to size, I recommend only generating exactly what you want from the very start.

    range() will do this job for you without the bother of an anonymous function call iterating a condition.

    Code: (Demo)

    $rand=rand(0,100);  // This is your X randomly generated
    
    echo $rand,"\n";
    
    $array=range($rand,100);  // generate an array with elements from X to 100 (inclusive)
    
    var_export($array);
    

    Potential Output:

    98
    array (
      0 => 98,
      1 => 99,
      2 => 100,
    )
    

    Alternatively, if you truly, truly want to modify the input array that you have already generated, then assuming you have an indexed array you can use array_slice() to remove elements using X to target the starting offset and optionally preserve the indexes/keys.

    Code: (Demo)

    $array=range(0,100);
    
    $rand=rand(0,100);  // This is your X randomly generated
    echo $rand,"\n";
    
    var_export(array_slice($array,$rand));  // reindex the output array
    
    echo "\n";
    
    var_export(array_slice($array,$rand,NULL,true));  // preserve original indexes
    

    Potential Output:

    95
    array (
      0 => 95,
      1 => 96,
      2 => 97,
      3 => 98,
      4 => 99,
      5 => 100,
    )
    array (
      95 => 95,
      96 => 96,
      97 => 97,
      98 => 98,
      99 => 99,
      100 => 100,
    )
    

提交回复
热议问题