如何比较数组和对象以找到匹配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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |