字符串拆分没有发生。我正在尝试使用str_split()函数

时间:2012-01-19 09:10:17

标签: php mysql html sql

我在使用字符串函数的PHP中遇到了一个小问题。我从emp_id列中获取最后一行值。这给了我1mw112,这是一个正确的结果。实际上我想要自动增加它,这是不可能的 emp_id是字符和数字的混合。我现在可以尝试做的就是拆分它 值分为两部分(1mw和112)。如果这是可能的,那么我可以将112存储在另一个变量中,并且可以在插入表格时轻松地手动递增1;我可以在表单中以只读格式显示它。我试过了str_split($var,3),但没有用。

这就是我的尝试:

<?php
    $db=mysql_connect("localhost","m","m");// database connection
    mysql_select_db("mars",$db); // database selection

    //$query1="SELECT LAST(eid) AS eid FROM emp_info" ;

    $query1="SELECT eid FROM emp_info ORDER BY eid DESC LIMIT 1"; // sql query to select last value from the column
    $result=mysql_query($query1);

    while($record=mysql_fetch_assoc($result))
    {
        while(each($record))
        {
            $eid=$record['eid'];
        }
    }

    echo $eid;
    echo "<br>";
    $splitted=str_split($eid,-2);
    echo $splitted;
?>

这是将“数组”作为输出回显。

有人可以帮我把另外3个数字存储到另一个变量中吗?

5 个答案:

答案 0 :(得分:4)

你想在这里使用substr()函数而不是str_split()。使用str_split()返回一个数组,其中字符串的每个字符都填充了数组的每个元素。

<?php

$str = '1mw112';

echo substr($str, -3);

?>

http://www.php.net/manual/en/function.substr.php

答案 1 :(得分:2)

$splitted是一个数组,这意味着你必须遍历数组才能获得它的值。

在你的情况下,你可以这样做,而不是::

$splitted = str_split($eid, 3);
$splitted[1]++;

$eid = implode("", $splitted);
echo $eid;

只要eid遵循相同的格式,这将使您能够获得结果。

<强>更新 要回答评论中提出的问题,可以采用另一种解决方案:

$eid = "1mv112";

$splitted = explode("mv", $eid);
$splitted[1]++;

$eid = implode("mv", $splitted);
echo $eid;

答案 2 :(得分:2)

你需要这样做的理由有一个根本性的缺陷:

  

我想要实际自动增加它是不可能的,因为这个emp_id混合了字符和数字。

事实并非如此。请考虑以下事项:

<?php

  $str = '1mw112';
  echo $str; // 1mw112
  $str++;
  echo $str; // 1mw113

答案 3 :(得分:1)

试试这个:

$var = substr($eid, 3);  

答案 4 :(得分:0)

您可以通过以下方式简单地使用substr()

$lastDigits = substr($eid, -3);