Intereting Posts
Пересечение многомерных ассоциативных массивов php Как извлечь текст между тегом привязки в PHP? Обнаруживать будущие повторяющиеся значения, в то время как итерация через MySQL приводит к PHP Настройка представления таблицы html при получении данных через шлюз для vs foreach vs, в то время как быстрее для итерации через массивы в php PHP конвертировать иностранные символы с акцентами Передача данных массива из PHP в JasperReports (с помощью PHP / JavaBridge) Установка Session_id в CodeIgniter Загрузите верхний и нижний колонтитулы из модуля в Laravel страница просмотра – ошибка PHP PHP получить список файлов, включая подкаталоги перестроить массив php во вложенный иерархический массив .htaccess перенаправление с использованием параметров GET Отправка электронной почты через почту PHP медленная Неустранимая ошибка: превышено максимальное время выполнения 30 секунд

Удалять каждый второй элемент из массива и ключей перегруппировки?

Как удалить каждый второй элемент из такого массива (используя только встроенные функции Array в PHP):

$array = array('first', 'second', 'third', 'fourth', 'fifth', 'sixth', 'seventh'); 

И когда я удаляю каждый второй элемент, я должен получить:

 $array = array('first', 'third', 'fifth', 'seventh'); 

Возможное?

 $array = array('first', 'second', 'third', 'fourth', 'fifth', 'sixth', 'seventh'); foreach (range(1, count($array), 2) as $key) { unset($array[$key]); } $array = array_merge($array); var_dump($array); с $array = array('first', 'second', 'third', 'fourth', 'fifth', 'sixth', 'seventh'); foreach (range(1, count($array), 2) as $key) { unset($array[$key]); } $array = array_merge($array); var_dump($array); 

или

 $array = array('first', 'second', 'third', 'fourth', 'fifth', 'sixth', 'seventh'); $size = count($array); $result = array(); for ($i = 0; $i < $size; $i += 2) { $result[] = $array[$i]; } var_dump($result); 

Другой подход с использованием array_intersect_key :

 $array = array('first', 'second', 'third', 'fourth', 'fifth', 'sixth', 'seventh'); $keys = range(0, count($array), 2); $result = array_values(array_intersect_key($array, array_combine($keys, $keys))); var_dump($result); 

Да, конечно.

 for ($i = 0; $i < count($array); $i++) { if (($i % 2) == 0) unset ($array[$i]); } 

Правильный способ – обратный цикл (вместе с обычным модулем). Для тех, кто ищет решение для копирования и вставки:

for ($i = count($ar)-1; $i >= 0 ; $i--){ if (($i % 2) == 0) unset ($ar[$i]); }