我希望在某封信之后增加一个数字。
我有一个自己的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之后递增最后一个数字吗?
感谢任何帮助。
答案 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];