2016-08-21 13 views
-1
$data = " 
usera: Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy. 
userb: eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam. 
userc:voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet."; 

preg_match_all("/(.*:)/", $data, $why1); 
array_walk_recursive($why1, function($value) use (&$why2) { 
    $why2[] = $value; 
}); 
$why3 = array_unique($why2); 
$why4 = array_values($why3); 

preg_match_all("/(.*.)/", $data, $info); 
array_walk_recursive($info, function($value) use (&$shrink) { 
    $shrink[] = $value; 
}); 
$brss = array_unique($array_flat); 
$arss = array_values($brss); 

for($i=0;$i < count($brss); $i++){ 

$usera = "$why4[0]"; 
$userb = "$why4[1]"; 
$userc = "$why4[2]"; 
$userd = "$why4[3]"; 

if (strpos($brss[i], $usera) !== false) 

// How can I 
{echo "true";} 
// ? 

// I only get false 

else {echo "false";} 

} 

Как получить истину в поиске массива, задав определенное слово с strpos?Как найти массив для определенного слова с strpos

Как я могу echo "true";?

+0

Что вы хотите совместить с '. *.'? Несколько раз вы используете 'array_walk_recursive' и цикл' for' для обработки массивов, вы должны попытаться переписать свой код, используя только 'foreach'. –

+0

Я хотел соответствовать имени: bla bla bla. Для geht extely соответствует до. Я использовал http://www.phpliveregex.com для правильного регулярного выражения. –

+0

Чтобы фигурировать буквальное '.' (точка) в регулярном выражении, вам нужно избежать его с помощью обратного слэша' \ .', иначе это означает любой символ, кроме новой строки (это одна из причин, почему это работает). Другое дело, '. *' Не останавливается на первой точке, а на последней точке линии. Чтобы остановиться в первой точке, вам нужно использовать нежирный квантификатор '. *?' –

ответ

0
if (strpos($brss[**$i**],$usera)!==false) { 
    echo "true"; 
} else { 
    echo "false"; 
} 

Это.