2013-05-18 4 views
0

У меня есть PHP скрипт, который загружает различные идентификаторы и отправлять их на страницу, на переменную GET, все они отделены друг от комы:Php - Найти только один номер в строке

.../page.php?items=12,13,43,17, 

Я тогда нагрузки mysql с циклом while, чтобы отображалась таблица, и мне нужно проверить, идентичен ли идентификатор элемента таблицы, а затем добавляет стиль этой строке таблицы.

Так что я сделал:

$style = (strstr($_GET['ids'], $segn['itemid'])) ? 'style="background:lightgreen;"' : '' ; 
<tr class="gradeX" <?= $style ?> >; 

В этом случае он работал для отдельных номеров. Но в случае, если у меня есть это IDS: 1, 2, 3 ... 12, и на странице получите запрос "page.php?items=12" Я получаю идентификаторы '12', '1' и '2'.

Я думал, что могу использовать explode(',' , $_GET['ids']), но потом, я думаю, это слишком долго.

Как получить идентификаторы? (Я не имею никакого отношения к регулярному выражению ...).

+3

использование $ обр = взорваться (' ' $ _GET [' иды ']), чтобы преобразовать в массив, а затем использовать in_array ($ segn [' Itemid'], $ обр) в вашем состоянии – SmasherHell

+0

Почему бы Вы используете фактический массив GET 'ids []'? – elclanrs

+0

OK SmasherHell, это правильный ответ !!! ТКУ! –

ответ

2

Вместо:

strstr($_GET['ids'], $segn['itemid']) 

Вы можете сделать это:

in_array($segn['itemid'], explode(',',$_GET['ids'])); 
3

Вы должны работать с идентификаторами как с массивом, а не как с строкой. Так что массив первым:

$ids = explode(',', $_GET['items']); 

А затем проверить, если текущий элемент в массиве:

$style = in_array($segn['itemid'], $ids) ? 'style="background:lightgreen;"' : ''; 

Тем не менее, вы должны использовать класс CSS вместо встроенных стилей.

1

Вам не нужно регулярное выражение для этого. Разделить переменный ПОЛУЧИТЬ используя взрывается, как вы делали:

$items = explode(",", $_GET['items']); 

Be careful- вы использовали неверное имя в коде (переменный прибудет это «элементы», а не «ИДС»);

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

$style = in_array($segn['itemid'], $items) ? 'style="background:lightgreen;"' : ''; 
Смежные вопросы