Как увеличить число после буквы в PHP

0

Я хочу увеличить число после определенного письма.

У меня есть список собственных идентификаторов, и я бы хотел увеличить его, не записывая его вручную каждый раз, когда добавляю новый идентификатор.

$ids = array('303.L1', '303.L2', '303.L3', '303.L4');

поэтому я использую функцию END() для извлечения последнего id из этого массива.

это то, что я пробовал, но я не могу получить результат.

        $i = 0;
        while($i <= count($ids)){

            $i++;
            $new_increment_id = 1;
            $final_increment = end($last_id) + $new_increment_id;

        }
        echo $final_increment;

Новый метод, но он добавляет мне двойную точку между числом и буквой.

          $i = 0;
           while($i <= count($ids)){
            $i++;
            $chars = preg_split("/[0-9]+/", end($ids));
            $nums = preg_split("/[a-zA-Z]+/", end($ids));

            $increment = $nums[1] + 1;
            $final_increment = $nums[0].$chars[1].$increment;
        }

        //i will use this id to be inserted to database as id:
        echo $final_increment;

Есть ли другой способ увеличить последнее число после L?

Любая помощь приветствуется.

  • 0
    Вы не могли бы просто использовать ключ массива (+1, если вы не хотите начинать с 0)?
  • 0
    Извините, было ошибкой объявить 1 переменной $ i, я изменю ее на 0. Thx
Показать ещё 2 комментария
Теги:

2 ответа

0

Если вам не нужен предопределенный список, но вы хотите, чтобы определенное количество идентификаторов, возвращаемых переменной $ ids u, могло использовать следующий код

<?php

$i              = 0;
$number_of_ids = 4;
$id_prefix  = "303.L";
$ids            = array();

while($i < $number_of_ids){
    $ids[] = $id_prefix . (++$i); // adds prefix and number to array ids.
}

var_dump($ids);
// will output '303.L1', '303.L2', '303.L3', '303.L4'
?>
0

Я немного смущен, потому что вы говорите "не пишите вручную". Но я думаю, что у меня есть решение:

$ids = array('303.L1', '303.L2', '303.L3', '303.L4');
$i = 0;
while($i <= count($ids)){

    ++$i;
    //Adding a new item to that array
    $ids[] = "303.L" . $i;
}

Это увеличит только это число LAST, начиная с нуля. Если бы вы хотели продолжить работу, когда вы остановились, это тоже было бы просто. Просто возьмите $i = 0; и заменить на:

//Grab last item in array
$current_index = $ids[count($ids) - 1];
//Separates the string (i.e. '303.L1') into an array of ['303', '1']
$exploded_id = explode('.L', $current_index);
//Then we just grab the second item in the array (index 1)
$i = $exploded_id[1];
  • 0
    Да, пишите вручную, я имею в виду, пишите это на входе каждый раз, когда я вставляю новый идентификатор.
  • 0
    я отредактировал свой вопрос и добавил новый способ увеличения последнего числа после «L», но проблема в том, что у меня двойная точка. в конце
Показать ещё 5 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню