Удалить дубликаты из массива

Привет, У меня есть массив, созданный из файла XML, используя эту функцию.

# LOCATIONS XML HANDLER #creates array holding values of field selected from XML string $xml # @param string $xml # @parm string $field_selection # return array # function locations_xml_handler($xml,$field_selection){ # Init return array $return = array(); # Load XML file into SimpleXML object $xml_obj = simplexml_load_string($xml); # Loop through each location and add data foreach($xml_obj->LocationsData[0]->Location as $location){ $return[] = array("Name" =>$location ->$field_selection,); } # Return array of locations return $return; } 

Как я могу прекратить получать повторяющиеся значения или удалять из массива после создания?

Вы можете просто вызвать array_unique впоследствии:

 $return = array_unique($return); 

Но обратите внимание:

Примечание . Два элемента считаются равными тогда и только тогда, когда (string) $elem1 === (string) $elem2 . В словах: когда строковое представление одно и то же. Будет использоваться первый элемент.

Или вместо удаления дубликатов вы можете использовать дополнительный массив для имен и использовать уникальность ключей массива PHP, чтобы избежать дублирования в первую очередь:

 $index = array(); foreach ($xml_obj->LocationsData[0]->Location as $location) { if (!array_key_exists($location->$field_selection, $index)) { $return[] = array("Name" => $location->$field_selection,); $index[$location->$field_selection] = true; } } 

Но если ваши имена не сопоставимы по строкам, вам нужен другой подход.

http://php.net/manual/en/function.array-unique.php

 $input = array(4, "4", "3", 4, 3, "3"); $result = array_unique($input); var_dump($result);