假如一个对象obj有多个属性,然后这里有个数量级为千万的该对象数组,我们需要在其中搜索得到匹配相应属性值的对象数组.
/**
* 简单的搜索引擎
* @param $obj:obj数组
* $find:搜索字段,e.g."玩具 白 男 "
* @return $r_obj 筛选得的新obj数组
*/
function getResultByFind($obj, $find)
{
$r_obj = array ('objs' => array ());
$n_objs = count ( $obj ['objs'] );
// 使用 !== 操作符。使用 != 不能像我们期待的那样工作,
// 假如 ' ' 的位置是 0。语句 (0 != false) 的结果是 false。
// 判断搜索字段中是否包含多个关键字
$arr_find = null;
if (strpos ( $find, " " ) !== false)
{
$t_arr_find = explode ( " ", $find );
$arr_find = array ();
// 排除空字段