避免在php中创建重复的对象

时间:2014-11-23 12:40:47

标签: php arrays

有没有办法避免在不使用循环的情况下创建重复的对象名称?

$venue = array();

if(loop for checking duplicate OBJ){
        $temp = some_var which fetch from database;

        //If it's not a duplicate object, creates new object 
        $venue["$temp"] = new Venue($temp);
        $venue["$temp"]->do something;
    }
    else{
        //If it's a duplicate object, don't creates new object
        $venue["$temp"]->do something;
    }

我正在尝试使用这样的循环检查重复的对象名称(“name”):

//检查场地数组中每个对象的名称是否重复?

for($itr = 0;$itr < $count($venue);$itr+=1){
        if($venue["$temp"]->name === $name){ 
            return true; //If it's a duplicate object name return true
        }
}

问题是当我使用此循环检查时,它会花费大量时间来完成工作

1 个答案:

答案 0 :(得分:8)

一种简单的方法是使用另一个数组将所有名称收集为数组键:

$allNames[$venue["$temp"]->name] = null; 

然后使用以下方法检查它是否是重复的对象名称:

array_key_exists($allNames, $name);