加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

如何比较数组和对象以找到匹配PHP

发布时间:2020-12-13 22:50:28 所属栏目:PHP教程 来源:网络整理
导读:我的第一个问题是,如何在对象数组[words]中搜索我的数组值,如果找到匹配则返回对象? 如何搜索更好的匹配?在下面的示例中,第二个对象更好地匹配2个单词,而不是第一个只有1个匹配. Array( [0] = blue [1] = green [2] = love [3] = sandro)stdClass Object(
我的第一个问题是,如何在对象数组[words]中搜索我的数组值,如果找到匹配则返回对象?

如何搜索更好的匹配?在下面的示例中,第二个对象更好地匹配2个单词,而不是第一个只有1个匹配.

Array
(
    [0] => blue
    [1] => green
    [2] => love
    [3] => sandro
)


stdClass Object
(
    [1] => stdClass Object
        (
            [words] => Array
                (
                    [0] => green
                    [1] => blue
                )

            [html] => html+img+link+code
        )

    [2] => stdClass Object
        (
            [words] => Array
                (
                    [0] => love
                    [1] => sex
                    [2] => blue
                )

            [html] => html+img+link+code
        )

)

我试过的代码:

foreach ($ads_arr as $ad) {
  print_r(array_intersect($ad->words,$words_arr));
}

解决方法

您可以为您的案例使用forloop,但您应该考虑定义真正的php类(而不是stdClass)并实现一些方法来帮助您.

foreach($main_std as $id => $sub_std){
 $count_match[$id] = 0;
 // now,check for each objects 
 // you can use an other loop with in_array,array_intersect 
 // or any other way
 foreach($the_array as $word_search)
 {
   // for each word you're looking for,add +1
   if (in_array($word_search,$sub_std->words))
     $count_match[$id] ++;
 }
}
// here,$count_match is an array you can sort by best match or whatever you want

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读