mysql — PHP — разбиение строки после определенной строки

Мой текущий проект состоит из UID, в котором он выглядит следующим образом

855FM21, 855FM22 и т. Д.

Я хочу, чтобы последний номер из UID, в котором это может быть сделано путем разделения строки.

Как разбить эту строку после подстроки «FM».?

1

Решение

Чтобы разбить эту строку после подстроки «FM», используйте explode с разделителем как FM, Нравится

$uid = "855FM22";
$split = explode("FM",$uid);
var_dump($split[1]);
7

Другие решения

Вы можете использовать метод explode ().

<?php
$UID = "855FM21";
$stringParts = explode("FM", $UID);

$firstPart  = $stringParts[0]; // 855
$secondPart = $stringParts[1]; // 21

?>
2

использовать функцию взрыва, он возвращает массив. для получения последнего индекса используйте echo $ array [count ($ array) — 1];

    <?php
$str = "123FM23";
$array = explode("FM",$str);
echo $array[count($array) - 1];
?>
2

Вы пробовали функцию взрыва php?

http://php.net/manual/en/function.explode.php

1

Для этого, пожалуйста, используйте функцию взрыва php.

$UID = "855FM21";
$splitToArray = explode("FM",$UID);
print_r($splitToArray[1]);
1
$uid = '123FM456';
$ArrUid = split( $uid, 'FM' );
if( count( $ArrUid ) > 1 ){
//is_numeric check ?!
$lastNumbers = $ArrUid[1];
}
else{
//no more numbers after FM
}

Вы также можете использовать регулярные выражения для извлечения последних чисел!

простой пример

$uid = '1234FM56';
preg_match( '/[0-9]+fm([0-9]+)/i', $uid, $arr );
print_r($arr); //the number is on index 1 in $arr -> $arr[1]
0

В качестве наилучшей практики никогда не запрашивайте в своем запросе mysql больше, чем вы на самом деле намереваетесь использовать. Акт расщепления uid может быть сделано в самом запросе — и это было бы, я бы, наверное, сделал это.

SELECT SUBSTRING_INDEX(uid, 'FM', -1) AS last_number FROM `your_tablename`
0
По вопросам рекламы [email protected]