2012-06-11 5 views
2

PHP에 관해서는 꽤 초록색입니다. 그래서 아직 답을 찾지 못했던 기본적인 질문이 있습니다.PHP 배열 다차원 인덱싱

다음과 같이 정규식 검색을 수행하면 페이지에서 반복되는 정보를 추출 할 수 있습니다. 정규식에는 두 개의 캡처 그룹 (...)이 있으므로 $matches 배열의 색인 범위는 0 (정규식 정규화 값)에서 2 (1과 2는 캡처 그룹 값)입니다.

<?php 
    $page = file_get_contents(url); 
    preg_match_all(regex-with-two-capturing-groups, $page, $matches); 
    $m1 = $matches[1]; 
    $m2 = $matches[2]; 
    for ($i=0; $i < sizeof($m1); $i++) { 
     echo ("<tr><td>$m1[$i]</td><td>$m2[$i]</td></tr>"); 
    } 
?> 

이 잘 작동하지만, 처음에는 짧은 버전 시도 :

<?php 
    $page = file_get_contents(url); 
    preg_match_all(regex-with-two-capturing-groups, $page, $matches); 
    for ($i=0; $i < sizeof($matches[0]); $i++) { 
     echo ("<tr><td>$matches[1][$i]</td><td>$matches[2][$i]</td></tr>"); 
    } 
?> 

을하지만,이

<tr><td>Array[0]</td><td>Array[0]</td></tr> 
<tr><td>Array[1]</td><td>Array[1]</td></tr> 
<tr><td>Array[2]</td><td>Array[2]</td></tr> 
<tr><td>Array[3]</td><td>Array[3]</td></tr> 
<tr><td>Array[4]</td><td>Array[4]</td></tr> 
... 

이 왜

의 결과
중간 배열 m1과 m2를 정의 할 필요없이 한 표현식에서 2 차원 색인화를 수행하는 방법이 있습니까?

답변

2

사용이 코드 :

<?php 
    $page = file_get_contents(url); 
    preg_match_all(regex-with-two-capturing-groups, $page, $matches); 
    for ($i=0; $i < sizeof($matches[0]); $i++) { 
     echo ("<tr><td>".$matches[1][$i]."</td><td>".$matches[2][$i]."</td></tr>"); 
    } 
?> 

PHP 문서 : 여기 language.types.string.parsing

봐 : PHP: concatenation of multidimensional array elements

+0

좋아요,. (점)는 문자열 연결 연산자의 일종입니까? – Maestro13

+0

@ Maestro13 : 예 정확히 – rkosegi

+0

그리고 "$ m1 [$ i]"는 (는) "$ [1] [$ i]와 (와) 일치합니까?" – Maestro13