2012-07-01 3 views
1

Как вы эхо только первую строку печати print_r?Как показывать только первую строку print_r?

Подробнее:

У меня есть этот PHP код:

preg_match_all('/MbrDtlMain.php\?([^ ]+)>/i', $string, $matches); 
foreach(end($matches) as $key=> $value){ 
    print print_r($value, 1).'<br>'; 
} 

Это приводит к:

12567682 
12764252 
12493678 
14739908 

(или другие номера в зависимости от пользовательского ввода)

Я попытался :

preg_match_all('/MbrDtlMain.php\?([^ ]+)>/i', $string, $matches); 
foreach(end($matches) as $key=> $value){ 
    $id = print_r($value, 1).'<br>'; 
} 
echo $id 

Но это приводит к 1 случайному числу из списка. Другими словами, результат отображается только при использовании печати типа ' print print_r($value, 1).'<br>';'. Проблема в том, что я хочу, чтобы первый, inorder, результат показывался. Как будто:

$firstlineofnumbers = '12567682'; 
echo $firstlineofnumbers; 

Надеюсь, что это имеет смысл. Спасибо (:

+0

ли символы всегда то же самое, так что вы могли бы просто отобразить первый так много персонажи? Кроме того, вам нужно использовать print_r? – phpmeh

+0

Нет символов, которые могут меняться, так как они подпадают под пользовательский ввод. И я думаю, что print_r необходимо привести к правильному порядку. –

ответ

3

Если я понял, что вы пытаетесь сделать, просто добавив break; заявление после вывода первого значения должно быть достаточно:

foreach(end($matches) as $key=> $value){ 
    print print_r($value, true).'<br>'; // print_r() expects true, not 1 
    break; 
} 
1

Если ключи в $ спичек всегда цифровые клавиши, этот код должен быть достаточно:

echo $matches[0]; 

В противном случае, попробуйте этот код:

$keys = array_keys($matches); 
echo $matches[array_shift($keys)]; 

$ ключи будут содержать все ключи из $ совпадений
array_shift вернет первое значение ключей $ (первый ключ).
Таким образом, последняя строка отобразит соответствующее значение.

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

0
preg_match_all('/MbrDtlMain.php\?([^ ]+)>/i', $string, $matches); 
$i=0; 
foreach(end($matches) as $key=> $value){ 
    $i++; 
    if ($i == 1) { 
     echo $value."<br />"; 
    } 

} 

Это начинается с переменной $i которая увеличивается на 1 для каждого матча. Если $i == 1, то он будет эхом $value.