2012-07-05 51 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 2012-07-05 18:56:31

+0

preg_match而不是stristr。用通配符傳遞正則表達式。再次顛倒過來以使其雙向工作。 http://php.net/manual/en/function.preg-match.php – Daniel 2012-07-07 15:56:15

相關問題