PHP - 使用值数组搜索一个关联数组,然后创建一个具有匹配结果的新数组

时间:2012-07-05 14:24:17

标签: php arrays search associative

我有一个关联数组如下:

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

我想使用第一个数组中的name字段对照以下关联数组中的name字段进行搜索:

[{"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

1 个答案:

答案 0 :(得分:0)

未经测试,但应该有效:

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

$ obj是你的第一个数组,$ obj2是第二个.. $ result包含匹配。