удаление элементов из массива php

189
07 июля 2018, 23:00

как можно удалить элементы массива от начала до указанного? например, есть массив:

Array (
    [title] => 
    [keywords] => 
    [category_id] => 23
    [category] => 22
    [subCategory] => 23
    [typeCategory] => 25
    [description] => 
    [fullTextAdvert] => 
    [price] => 
    [rooms_apartament] => 0
    [storey_apartament] => 0
    [addPost] => 
)

я хочу удалить все элементы до элемента [fullTextAdvert] включительно. писать 8 раз (в данном массиве 8 первых элементов) unset($array['элемент']) нет смысла, потому что их может быть разное количество

Answer 1

Можно как-то так.

$array = [
    'title' => '',
    'keywords' => '',
    'category_id' => 23,
    'category' => 22,
    'subCategory' => 23,
    'typeCategory' => 25,
    'description' => '',
    'fullTextAdvert' => '', 
    'price' => '',
    'rooms_apartament' => 0,
    'storey_apartament' => 0,
    'addPost' => ''
];
// Проходим по массиву
foreach ($array as $key => $value) {
    unset($array[$key]);              // Удаляем элемент...
    if ($key == 'fullTextAdvert') {   // Но если ключ равен fullTextAdvert, то прекращаем
        break;
    }
}
print_r($array);

Выведет:

Array
(
    [price] => 
    [rooms_apartament] => 0
    [storey_apartament] => 0
    [addPost] => 
)
Answer 2

Можно выбирать значения из массива от указанного ключа с помощью array_walk():

$array = [
    'title' => '',
    'keywords' => '',
    'category_id' => 23,
    'category' => 22,
    'subCategory' => 23,
    'typeCategory' => 25,
    'description' => '',
    'fullTextAdvert' => '', 
    'price' => '',
    'rooms_apartament' => 0,
    'storey_apartament' => 0,
    'addPost' => ''
];
array_walk($array, function($item, $k)use(&$new) {
    static $switch = false;
    $k != 'fullTextAdvert' ?: $switch = true;
    !$switch ?: $k == 'fullTextAdvert' ?: $new[$k] = $item;
}, $array);

Результат будет в переменной $new.

READ ALSO
Определение региона по номеру телефона на сайте

Определение региона по номеру телефона на сайте

Товарищи, возникла задача на сайте определить регион по введенному пользователем номеруТе кто знаком, не подскажете, как реализовать

180
MySQL: поиск по регулярному выражению

MySQL: поиск по регулярному выражению

Есть большая таблица с названиями улицМне необходима выбрать из нее только те, которые содержат дефис и названия, например "Тверская-Ямская...

160
Проблема с Composer (PHP)

Проблема с Composer (PHP)

При попытке установить зависимости в проекте через Composer (у меня PHP 70, Composer 1

175
Вопрос по выборке из БД

Вопрос по выборке из БД

Нужно получить сумму из 10 строк, для этого пробую использовать следующий запрос:

193