Я хочу увеличить число после определенного письма.
У меня есть список собственных идентификаторов, и я бы хотел увеличить его, не записывая его вручную каждый раз, когда добавляю новый идентификатор.
$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?
Любая помощь приветствуется.
Если вам не нужен предопределенный список, но вы хотите, чтобы определенное количество идентификаторов, возвращаемых переменной $ 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'
?>
Я немного смущен, потому что вы говорите "не пишите вручную". Но я думаю, что у меня есть решение:
$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];