A
A
Aramano2021-08-10 23:43:58
PHP
Aramano, 2021-08-10 23:43:58

How to remove a certain number of keys from an array?

I have an array

$keys = ["row1", "row2", "row3", "row4"]; //сам массив
$countToDelete = 3; //количество для удаления

I understand how to remove one key
$item= '';
          foreach ($keys as $key => $key1) {
            $item= $key1;
            unset($keys[$key]);
            sort($keys);
            break;
          }

But I don't understand how to set the data for deleting a given amount of $countToDelete. Here I am asking for help.

Answer the question

In order to leave comments, you need to log in

1 answer(s)
A
Alexander, 2021-08-10
@Aramano

Variant with foreach:

$data = ['row1', 'row2', 'row3', 'row4', 'row5'];
$countToDelete = 3;

$i = 0;
foreach ($data as $index => $value) {
  unset($data[$index]);

  if ($i >= $countToDelete - 1) {
    break;
  }
  $i++;
}

var_dump($data);
/*
array(2) {
  [3]=>
  string(4) "row4"
  [4]=>
  string(4) "row5"
}
*/

Option with array_filter :
$data = ['row1', 'row2', 'row3', 'row4', 'row5'];
$countToDelete = 3;

$filtered = array_filter($data, function ($value) use (&$countToDelete) {
  return $countToDelete-- <= 0;
});

var_dump($filtered);
/*
array(2) {
  [3]=>
  string(4) "row4"
  [4]=>
  string(4) "row5"
}
*/

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question