Обновлено: как автоматически добавлять данные из поля при вызове

как автоматически добавлять данные из поля при вызове. пример: значение field = 1AA/example/example

Я использую 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)

Итак, вы хотите получить результат типа 11AA / example / example?

Madhusudan 31.10.2018 13:08

нет, я хочу результат 2AA / example / example

YonzLeon 31.10.2018 13:09
1
2
64
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Вы можете сделать что-то подобное:

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

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

Не элегантно, но должно работать.

Ответ принят как подходящий

Вы также можете использовать preg_replace_callback:

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

Как я понял, вы хотите выполнить операцию с первым символом на вашем автомобиле, чтобы вы могли выбрать его как символ из var

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

не получится: -3v4l.org/aF7oL. вам нужно сделать +1 вместо ++. отметьте здесь: - 3v4l.org/1Aohr

Anant Kumar Singh 01.11.2018 05:36

это наиболее эффективное решение, если заменить ++ на +1. Так что +1

Anant Kumar Singh 01.11.2018 05:38

Другие вопросы по теме