如何在PHP中字母后增加数字

时间:2015-02-18 20:40:19

标签: php

我希望在某封信之后增加一个数字。

我有一个自己的ID列表,我想增加它,而不是每次添加一个新ID时手动写它。

$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之后递增最后一个数字吗?

感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

如果您不想要预定义列表,但想要在$ ids变量中返回已定义数量的ID,则可以使用以下代码

<?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'
?>

答案 1 :(得分:0)

我有点困惑,因为你说&#34;没有手动编写&#34;。但我认为我有一个解决方案:

$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;
}

这会增加最后一个数字,从零开始。如果你想继续你离开的地方,那也很简单。只需取$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];