编辑:如何在调用时自动从字段添加数据

时间:2018-10-31 11:56:59

标签: php mysql

如何在调用时自动从字段添加数据。 例: field的值是= 1AA/example/example

iam使用foreach

foreach ($datanomor as $row){
$var=$row->MaxCode;
echo $var;
}

结果是

1AA/example/example

我想在(1+ 1AA/example/example)上添加操作

所以我打电话给我该怎么办,结果将显示:

2AA/example/example

***编辑 有名称为t_surat_keluar的表

查询到我的控制器中字段的调用值是:

$datanomor = $this->db->query("SELECT max(nomor_surat) as maxKode")
    ->('FROM t_surat_keluar where id_jenissurat=$row->id_jenissurat')
    ->result();
$data['datanomor']=$datanomor; 

值为001/smk/ck/2018

在我看来,我运行以下脚本来调用该值:

foreach ($datanomor1 as $row) {
    $var = $row->maxKode;
    echo $var;
}

现在我想问,当我从脚本中调用时如何将值(001/smk/ck/2018)直接更改为(002/smk/ck/2018)

对不起,我的英语不好。

***现在编辑,我可以使用此脚本直接更改该值

foreach ($datanomor1 as $row){
$var=$row->maxKode;
$var[2] = (int)$var[2]+1;
 echo $var;
            }

新问题是,如果我使用以下脚本,则最后一个值为(009/smk/ck/2018)

$var[2] = (int)$var[2]+1;

输出将显示(**001**/smk/ck/2018)而不是(**0010**/smk/ck/2018)

3 个答案:

答案 0 :(得分:2)

据我了解,您希望对ur var上的第一个字符进行操作,因此您可以从var中将其选择为char

foreach ($datanomor as $row){
$var=$row->MaxCode;
//select the first char and casting it to integer then increment it 
$var[0] = (int)$var[0]++;

echo $var;
}

答案 1 :(得分:0)

您可以执行以下操作:

$varInt = intval($var);
$varString = strval($varInt);
$varInt += 1;

$result = strval($varInt).substr($var, strlen($varString));

不优雅,但应该可以。

答案 2 :(得分:0)

您也可以使用preg_replace_callback

foreach ($datanomor as $row){
    echo preg_replace_callback('/^([0-9]+)(.+)/', function($matches) {
        return ($matches[1] + 1) . $matches[2];
    }, $row->MaxCode);
}