du6jws6975 2011-11-25 22:41
浏览 54
已采纳

如何在数组中仅显示匹配关键字

This is my array output

Array
(
    [0] => Array
        (
            [tweet_text] => Fedora 16 "Verne" released! http://t.co/lECbdzE0 #Fedora #Linux
        )

    [1] => Array
        (
            [tweet_text] => Ubuntu 11.10 "Oneiric Ocelot" released! #Ubuntu #Linux
        )

)

Example to find Ubuntu keyword. From the current array how do I filter to show only

Array ( [1] => Array (
            [tweet_text] => Ubuntu 11.10 "Oneiric Ocelot" released! #Ubuntu #Linux
        )   
)

The code

$keywords = array('Ubuntu');

foreach ($keywords as &$keyword) {
    $keyword = preg_quote($keyword);
}

$regex = "/(" . implode('|', $keywords) . ")/";
$check = preg_match($regex, $anArray);

if($check == 1)  {
 // here I want to display only Ubuntu
}

Let me know

  • 写回答

2条回答 默认 最新

  • dougan4884 2011-11-26 00:01
    关注

    preg_grep — Return array entries that match the pattern

    example:-

    $arr = array('k'=>'ubuntu', 'j'=>'ubuntu1', 'n'=>'fedorra');
    $matches = preg_grep('/ubuntu/i', $arr);
    

    if you original source is an multi-dimensional array,
    you can try :-

     $cmp = array();
     foreach ($src as $key=>$arr)
     {
       $cmp[$key] = $arr['tweet_text'];
     }
     $matches = preg_grep('/ubuntu/i', $cmp);
    
     // $matches will be an associate array contains the matches
     // and $matches and $src are using same index key
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 fluent的在模拟压强时使用希望得到一些建议
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
  • ¥15 模糊pid与pid仿真结果几乎一样
  • ¥15 java的GUI的运用
  • ¥15 Web.config连不上数据库
  • ¥15 我想付费需要AKM公司DSP开发资料及相关开发。
  • ¥15 怎么配置广告联盟瀑布流
  • ¥15 Rstudio 保存代码闪退