Восстановить массив со стандартными ключами

Я сделал сценарий, в котором в основном я взрываю строку, например:

$pizza  = "piece1 piece2 piece3 piece4 piece5 piece6";
$pieces = explode(" ", $pizza);

И я делаю условие, при котором, если оно истинно, я должен отключить первое значение массива (с ключом 0)

if (condition) {
    unset($pieces[0]);

Проблема в том, что когда я сбрасываю первое значение, массив начинается с ключа 1, и мне нужно, чтобы он начинался с ключа 0, поскольку мне нужно объединить значения с параллельным массивом.

Итак, вопрос: кто-нибудь знает функцию для перестройки массива со стандартными ключами (от 0 до n). Спасибо.

использовать array_values ​​($ штук)

Ntwobike 17.08.2018 12:23

из документа: array_shift() shifts the first value of the array off and returns it, shortening the array by one element and moving everything down. All numerical array keys will be modified to start counting from zero while literal keys won't be touched.

splash58 17.08.2018 12:30
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
2
203
6
Перейти к ответу Данный вопрос помечен как решенный

Ответы 6

Ответ принят как подходящий
if (condition) {
    array_shift($pieces);
}

print_r($pieces);

array_shift - Сдвигает элемент с начала массива

Rajveer gangwar 17.08.2018 14:51

Или вы можете использовать array_values ​​для сброса всех ключей.

if (condition) {
   unset($pieces[0]);
   $pieces = array_values($pieces);
}

Если вы удалите элемент [5], он сделает [6] -> [5]

Использование array_values

$pieces = array_values($pieces);

Вы можете использовать функцию PHP array_shift () для удаления первого элемента или значения из массива. Функция array_shift () также возвращает удаленное значение массива. Однако, если массив пуст (или переменная не является массивом), возвращаемое значение будет NULL.

<?php
$pizza  = "piece1 piece2 piece3 piece4 piece5 piece6";
$pieces = explode(" ", $pizza);

// Deleting first array item
$removed = array_shift($pieces);
print_r($pieces);
echo "<br>";
var_dump($removed);
?>

Выход

Array ( [0] => piece2 [1] => piece3 [2] => piece4 [3] => piece5 [4] => piece6 ) 
// Removed
    string(6) "piece1"
$pizza  = "piece1 piece2 piece3 piece4 piece5 piece6";
$arr = explode(" ", $pizza);
foreach($arr as $k => $v) {
    if ($v == 'piece3' || $v == 'piece5') {
        array_splice($arr, $k, 1);
    }
}
print_r($arr);

// Array
// (
//     [0] => piece1
//     [1] => piece2
//     [2] => piece4
//     [3] => piece5
// )

Взгляните на функцию array_filter. Это дает вам возможность принимать еще более сложные решения.

$result = array_filter($pieces, function($index) {
    return $index > 0;
}, ARRAY_FILTER_USE_KEY);

Другие вопросы по теме