2012-07-05 2 views
0

일치하는 결과를 새로운 배열을 만들 :PHP - 다음과 같이 값의 배열 하나 개의 연관 배열을 검색, 나는 하나 개의 연관 배열을 가지고

{ 
    "organizations":[ 
    { 
     "name":"10sheet", 
     "owner_name":"Me" 
    }, 
    { 
     "name":"12Gigs", 
     "owner_name":"Me" 
    }, 
     "name":"24\/7 Card", 
     "owner_name":"Me as well" 
    }, 
} 

내가 첫 번째 배열에 이름 필드를 사용하여 검색 할 다음 연관 배열의 이름 필드에 대하여 :

[{"name": "Wetpaint", 
    "permalink": "wetpaint", 
    "category_code": "web"}, 
{"name": "AdventNet", 
    "permalink": "adventnet", 
    "category_code": "enterprise"}, 
{"name": "Zoho", 
    "permalink": "zoho", 
    "category_code": "software"}, 
{"name": "Digg", 
    "permalink": "digg", 
    "category_code": "web"}, 
{"name": "24/7 Card", 
    "permalink": "247-card", 
    "category_code": "other"}] 

일치 영구 링크 필드의 값을 새로운 배열에 넣어있을 경우. 또한 첫 번째 배열에는 24/7 대신 24/7과 같은 이스케이프 문제가 있으며 대/소문자를 구분하지 않아야합니다. 나는 이것을 PHP로 작성하려고 노력 중이며이 두 API로 작업하면 나를 죽이고있다.

도움 주셔서 감사합니다.

-Greg

답변

0

테스트되지 않은,하지만 작동합니다 :

<?php 
$result = array(); 
foreach($obj["organizations"] as $o) { 
    foreach($obj2 as $o2) { 
     if(stristr($o["name"], $o2["name"])) { 
      $result[] = $o2["permalink"]; 
     } 
    } 
} 
?> 

$ OBJ는 첫 번째 배열, $ obj2보다 두 번째가 ... $ 결과가 일치하는 항목을 포함하고 있습니다.

+0

답변 해 주셔서 감사합니다. 나는 거의 작동하지만 array_search를하고 싶다. 그래서 나는 하나의 배열 이름에 'Reddit'을 가지고 있고 'reddit'하면 다른 것을 찾는다. 그러나, 예를 들어 'redditmania'가 있으면 일치가 반환되지 않습니다. – Greg

+0

stristr 대신 preg_match. 와일드 카드로 정규식을 전달하십시오. 두 가지 방법으로 작동하도록 다시 한번 역으로 수행하십시오. http://php.net/manual/en/function.preg-match.php – Daniel

관련 문제