2013-09-27 3 views
-1

Я хочу проверить, содержит ли значение массива '?' или нет. Если «да», тогда необходимо удалить знак следующего символа. Спасибо.Php Регулярное выражение, чтобы найти знак вопроса в массиве

Вот мой код:

<?php 
// Assume the Url to be localhost/demo/index.php?set=1 
$path = explode('/',$_SERVER['REQUEST_URI']); 
if (strpos($path[2], '?') !== false) { 
echo "found"; 
} 
?> 

Как добиться того же с помощью preg_match?

+3

И ваши попытки? –

+0

Массив или строка? –

+0

Этот вопрос не соответствует теме, потому что речь идет о чем-то, что содержится в документации php, и этот конкретный вопрос, вероятно, не поможет никому в будущем. –

ответ

1

массив или строку? В массивах его не похожие персонажи сгруппированы вместе. Предполагая, что вы имели в виду строку, вы можете попробовать

<?php 

$haystack="testata?basdasd"; 
$needle="?"; 

$pos = strpos($haystack,$needle); 
if($pos!==FALSE && $haystack[$post+1]!="") 
    echo $haystack[$pos+1]; 

?> 
0

Сделать использование in_array() .. Довольно быстрее, чем регулярное выражение

<?php 

$a = array('1','?','3'); 
$needle = '?'; 
if(in_array($needle,$a)) 
{ 
    echo $needle; 

} 
0

Предполагая, что ваш вопрос означает, что есть? символ в строке, в массиве:

без регулярных выражений:

<?php 
    for($i = 0; $i < count($array); $i++) { 
    if (strpos($array[$i], '?') !== false) { 
     // you found your item, use the $i index and break the loop 
    } 
    } 
?> 

с регулярными выражениями:

<?php 
    for($i = 0; $i < count($array); $i++) { 
    if (preg_match('/\?/', $array[$i])) { 
     // you found your item, use the $i index and break the loop 
    } 
    } 
?> 
0
$storedText = []; 

Foreach($arrray as $a){ 
    $postion = strpos($a,"?"); 

    If($position !== false){ 
     $succeedingText = substr($a,$position); 
     $storedText[] = $succeedingText; 
    } 

} 

чем $ storedText массива со всем текстом succeding ? Из всего значения, которое содержит?

Смежные вопросы