2012-07-01 3 views
1

print_r의 첫 번째 줄만 어떻게 에코합니까?인쇄의 첫 번째 줄만 표시하는 방법 print_r?

더 많은 정보를 원하시면 : 결과 그건

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

: :이 PHP 코드가

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

,이 코드가 충분해야한다 :

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

$ 키는 모든 키를 포함합니다 : 그렇지 않으면

echo $matches[0]; 

,이 코드를 시도 $의 일치합니다.
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 />"; 
    } 

} 

이 서로 매치 1 씩 증가 가변 $i 시작한다. $i == 1 인 경우 $value이 표시됩니다.

관련 문제