有没有办法避免在不使用循环的情况下创建重复的对象名称?
$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
}
}
问题是当我使用此循环检查时,它会花费大量时间来完成工作
答案 0 :(得分:8)
一种简单的方法是使用另一个数组将所有名称收集为数组键:
$allNames[$venue["$temp"]->name] = null;
然后使用以下方法检查它是否是重复的对象名称:
array_key_exists($allNames, $name);