Задать вопрос
@Aramano

Как удалить определенное количество ключей из массива?

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

Я понимаю, как удалить один ключ
$item= '';
          foreach ($keys as $key => $key1) {
            $item= $key1;
            unset($keys[$key]);
            sort($keys);
            break;
          }

Но не понимаю, как задать данные для удаления данного количества $countToDelete. Вот и прошу помощи..
  • Вопрос задан
  • 151 просмотр
Подписаться 1 Простой 2 комментария
Решения вопроса 1
Вариант с 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"
}
*/


Вариант с 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"
}
*/
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы