2011-09-21 3 views
0

Xpath를 사용하여 일부 정보를 구문 분석하면 간단한 배열이 반환됩니다.배열의 특정 값만 구문 분석 하시겠습니까?

$values = array();

Array 
(
    [0] => http://www.aaa.com/19364328526/ 
    [1] => http://www.bbb.com/207341152011/ 
    [2] => http://www.ccc.co.jp/1246623/ 
) 

내가 배열을 분석하고 유일한 URL 가중치에 따라 특정 URL을 취할 수있는 방법이 있습니까? 예를 들어. aaa.com이있는 경우 aaa.com 만 사용하십시오. 그렇지 않다면 ccc.co.jp이 있는지 확인하십시오. 그럴 경우에만 가져옵니다.

$ values ​​[0]/[1]/etc가 무엇인지 알고있을 때 배열을 선택하는 방법 만 알고 있습니다. , 불행하게도이 어레이의 링크 순서가 바뀌거나 때때로 존재하지 않습니다.

도움이 될 것입니다.

감사합니다. Tre

답변

2

값이 존재하는지 확인하려면 in_array()을 사용할 수 있습니다. 나는 당신이 무엇을하려고하는지 정확히 모르지만, 여기에 한 예가 있습니다. 가능한 모든 가치를 알고 있습니까?

//List domains in priority order  
$weighted = array('aaa.com','bbb.com','ccc.com'); 

$selected_url = ''; 
foreach($weighted as $check) { //start with highest priority 
    foreach($values as $url) { //loop through all URL's 
     if(strpos($url,$check) !== false) { 
      //If a url matches priority, return it. We are finished to exit both loops 
      $selected_url = $url; 
      break 2; 
     } 
    } 
} 

$selected_url는 가장 높은 우선 순위의 URL을해야하거나 URL을 하나도 발견되지 않은 경우는 비어 있습니다.

+0

나는 그와 같은 배열리스트를 반복 할 것이고 나는 가장 높은 가중치를 가진 URL을 제거하고 끝에 배열을 뱉어 낼 것이다. 이것 좀 봐. 감사합니다 – tr3online

+0

어떻게 당신의 URL의 무게를 정의합니까? 그게 달라질 수 있습니다 –

+0

아직, 그래서 질문을 시도하지 않았습니다. 배열을 순차적으로 스캔하는 방법이 있는지 궁금합니다. aaa.com을 확인하십시오. 거기에 전체 배열 항목 인 aaa.com/xyz 등이있는 경우 확인하십시오. 해당 항목이 없으면 ccc.co.jp을 확인하십시오. 전체 배열 항목 등이있는 경우 확인하십시오. – tr3online

관련 문제