PHP против регулярного выражения для подсчета данных - PullRequest
0 голосов
/ 26 июля 2010

у меня есть массив, он имеет те же данные:

  data range    
115X0101-115X0200
115X0101-115X0200
115X0101-115X0200

средний производственный код 115x ... это неважно.мы просто касаемся четырех цифр, которые мы можем считать.

1. i want script read or search "0101" and "0200" from 115X0101-115X0200
2. i have tried using regex to count them become 200-101=100
3. the "115X0101-115X0200" repeated until there are 20 data like this
4. after it reached 20, show result at page:
           data range
             100 

1 Ответ

2 голосов
/ 26 июля 2010

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

Возможно, вы захотите что-то вроде этого (в PHP):

# Get this from the database
$sql_results = array(
    '115X0101-115X0200',
    '115X0101-115X0200',
    '115X0101-115X0200',
);

foreach($sql_results as $row)
{
    preg_match_all('/\d{4}/', $row, $matches);
                #200                     #101
    echo intval($matches[0][1]) - intval($matches[0][0]) + 1;
}

Для каждой строки preg_match найдет группы из 4 цифр (\d{4}) и поместит их в $matches (используйте var_dump($matches), чтобы увидеть, как это выглядит).

Подробнее о Regex

Предел SQL

Примечание: если вы хотите получить только 20 результатов одновременно, вам нужно будет SELECT * FROM table LIMIT 20 при запросе к базе данных. Чтобы получить строки 31-50, вы должны использовать LIMIT 30, 20, что означает смещение на 30, а затем получить 20 строк.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...