Как удалить повторяющиеся значения из массива в PHP?Как удалить повторяющиеся значения из массива в PHP
ответ
Использование array_unique().
Пример:
$array = array(1, 2, 2, 3);
$array = array_unique($array); // Array is now (1, 2, 3)
Я сделал это без использования какой-либо функции.
$arr = array("1", "2", "3", "4", "5", "4", "2", "1");
$len = count($arr);
for ($i = 0; $i < $len; $i++) {
$temp = $arr[$i];
$j = $i;
for ($k = 0; $k < $len; $k++) {
if ($k != $j) {
if ($temp == $arr[$k]) {
echo $temp."<br>";
$arr[$k]=" ";
}
}
}
}
for ($i = 0; $i < $len; $i++) {
echo $arr[$i] . " <br><br>";
}
explode(",", implode(",", array_unique(explode(",", $YOUR_ARRAY))));
Это будет заботиться о ключевых ассоциаций и сериализации ключи для результирующего нового массива :-)
Что было бы результатом `explode (", "$ YOUR_ARRAY)`, когда `$ YOUR_ARRAY` `array (" 1 "," 2 "," 3 ")`? – kiamlaluno 2010-08-18 12:52:18
@kiamlaluno - :) и ответ: ** Warning: explode() ожидает, что параметр 2 будет строкой, массив указан в ... на линии .... ** – 2015-07-13 13:57:52
$array = array("Ram","Thiru","Ram","Thiraviya");
$array = array_unique($array);
Выход:
"Ram", «Тиру», «Тиравия»
иногда array_unique()
не так, если вы хотите получить уникальные и повторяющиеся элементы ...
$unique=array("","A1","","A2","","A1","");
$duplicated=array();
foreach($unique as $k=>$v) {
if(($kt=array_search($v,$unique))!==false and $k!=$kt)
{ unset($unique[$kt]); $duplicated[]=$v; }
}
sort($unique); // optional
sort($duplicated); // optional
результаты по
array (0 => '', 1 => 'A1', 2 => 'A2',) /* $unique */
array (0 => '', 1 => '', 2 => '', 3 => 'A1',) /* $duplicated */
$arrDuplicate = array ("","",1,3,"",5);
foreach(array_unique($arrDuplicate) as $v){
if($v != ""){$arrRemoved = $v; }}
print_r($arrRemoved);
//Find duplicates
$arr = array(
'unique',
'duplicate',
'distinct',
'justone',
'three3',
'duplicate',
'three3',
'three3',
'onlyone'
);
$unique = array_unique($arr);
$dupes = array_diff_key($arr, $unique);
// array(5=>'duplicate', 6=>'three3' 7=>'three3')
// count duplicates
array_count_values($dupes); // array('duplicate'=>1, 'three3'=>2)
Это отличный способ сделать это. Мог бы убедиться, что его выход снова возвращается к массиву. Теперь вы показываете только последнее уникальное значение.
Попробуйте это:
$arrDuplicate = array ("","",1,3,"",5);
foreach (array_unique($arrDuplicate) as $v){
if($v != "") { $arrRemoved[] = $v; }
}
print_r ($arrRemoved);
function arrayUnique($myArray)
{
$newArray = Array();
if (is_array($myArray))
{
foreach($myArray as $key=>$val)
{
if (is_array($val))
{
$val2 = arrayUnique($val);
}
else
{
$val2 = $val;
$newArray=array_unique($myArray);
$newArray=deleteEmpty($newArray);
break;
}
if (!empty($val2))
{
$newArray[$key] = $val2;
}
}
}
return ($newArray);
}
function deleteEmpty($myArray)
{
$retArray= Array();
foreach($myArray as $key=>$val)
{
if (($key<>"") && ($val<>""))
{
$retArray[$key] = $val;
}
}
return $retArray;
}
попробовать этот короткий & сладкий код -
$array = array (1,4,2,1,7,4,9,7,5,9);
$unique = array();
foreach($array as $v){
isset($k[$v]) || ($k[$v]=1) && $unique[] = $v;
}
var_dump($unique);
Выход -
array(6) {
[0]=>
int(1)
[1]=>
int(4)
[2]=>
int(2)
[3]=>
int(7)
[4]=>
int(9)
[5]=>
int(5)
}
я t можно сделать через функцию i, сделав три функции duplicate, возвращает значения, которые дублируются в массиве. Вторая функция single возвращает только те значения, которые являются единичными, не повторяются в массиве, а третья и полная функция возвращают все значения, но не дублируются, если какое-либо значение равно дублировал преобразовать его выделить
function duplicate($arr){
$duplicate;
$count=array_count_values($arr);
foreach($arr as $key=>$value){
if($count[$value]>1){
$duplicate[$value]=$value;
}
}
return $duplicate;
}
function single($arr){
$single;
$count=array_count_values($arr);
foreach($arr as $key=>$value){
if($count[$value]==1){
$single[$value]=$value;
}
}
return $single;
}
function full($arr,$arry){
$full=$arr+$arry;
sort($full);
return $full;
}
}
в зависимости от размера вашего массива, я нашел
$array = array_values(array_flip(array_flip($array)));
может быть быстрее, чем array_unique.
Единственное, что работал для меня:
$array = array_unique($array, SORT_REGULAR);
Функция array_unique сделает это за вас. Вам просто нужно добавить SORT_REGULAR флага:
$items_thread = array_unique($items_thread, SORT_REGULAR);
<?php
$arr1 = [1,1,2,3,4,5,6,3,1,3,5,3,20];
print_r(arr_unique($arr1));
function arr_unique($arr) {
sort($arr);
$curr = $arr[0];
$uni_arr[] = $arr[0];
for($i=0; $i<count($arr);$i++){
if($curr != $arr[$i]) {
$uni_arr[] = $arr[$i];
$curr = $arr[$i];
}
}
return $uni_arr;
}
Используйте array_values(array_unique($array));
array_unique
: для уникального массива array_values
: для переиндексации
if (@!in_array($classified->category,$arr)){
$arr[] = $classified->category;
?>
<?php } endwhile; wp_reset_query(); ?>
первого значения времени проверки в массиве и нашли то же значение игнорировать его
Мы можем создать такой тип массива, чтобы использовать это последнее значение будет обновляться в столбец или ключевое значение, и мы получим уникальное значение из массива ...
$array = array (1,3,4,2,1,7,4,9,7,5,9);
$data=array();
foreach($array as $value){
$data[$value]= $value;
}
array_keys($data);
OR
array_values($data);
Для удаления дубликатов значения массива можно использовать Функция array_unique ($ your_array) PHP
Удалить дублирующиеся значения из ассоциативного массива в PHP.
$arrDup = Array ('0' => 'aaa-aaa' , 'SKU' => 'aaa-aaa' , '1' => '12/1/1' , 'date' => '12/1/1' , '2' => '1.15' , 'cost' => '1.15');
foreach($arrDup as $k => $v){
if(!(isset ($hold[$v])))
$hold[$v]=1;
else
unset($arrDup[$k]);
}
Array ([0] => ааа-ааа [1] => 12/1/1 [2] => 1,15)
$result = array();
foreach ($array as $key => $value){
if(!in_array($value, $result))
$result[$key]=$value;
}
- 1. удалить повторяющиеся значения из массива
- 2. Удалить повторяющиеся значения из массива?
- 3. Как удалить повторяющиеся значения из массива в PHP?
- 4. Как удалить повторяющиеся значения из многомерного массива в PHP
- 5. Как удалить повторяющиеся значения из массива в PHP?
- 6. Как удалить повторяющиеся значения из массива
- 7. Как удалить повторяющиеся значения из массива?
- 8. Как удалить повторяющиеся значения в PHP?
- 9. удалить повторяющиеся значения из многомерного массива в PHP
- 10. Javascript удалить повторяющиеся значения из массива объектов
- 11. Удалить повторяющиеся значения из массива Numpy структурированного
- 12. Удалить повторяющиеся значения из многомерного массива
- 13. Удалить повторяющиеся значения из внутри двумерного массива
- 14. удалить повторяющиеся значения из многомерного массива
- 15. Как удалить повторяющиеся значения из массива в цикле foreach?
- 16. PHP удалить повторяющиеся значения из многомерного массива, но сохранить последний
- 17. PHP - Как сравнить два массива и удалить повторяющиеся значения
- 18. PHP возвращает повторяющиеся значения из массива
- 19. PHP удалять повторяющиеся значения из многомерного массива
- 20. Как удалить значения из массива в PHP?
- 21. Как удалить значения из массива в PHP?
- 22. Как удалить только полностью повторяющиеся значения из массива?
- 23. Объединить PHP массива повторяющиеся значения
- 24. удалить значения из PHP массива
- 25. Как удалить повторяющиеся значения из текстового файла?
- 26. Удалить повторяющиеся значения из массива с игнорированием последние два символа
- 27. Laravel - Как удалить повторяющиеся значения из многомерного массива
- 28. Как удалить повторяющиеся значения из массива при сохранении их количества?
- 29. Как удалить повторяющиеся элементы из отсортированного массива
- 30. Как удалить повторяющиеся значения в массиве flex?
@Ian - `Обратите внимание, что array_unique() является не предназначен для работы с многоразмерными массивами. ` – 2010-08-19 19:45:55
Вышеупомянутые элементы будут сохранены. Если вы хотите, чтобы они были переиндексированы, добавьте array_values: http://www.php.net/manual/en/function.array-values.php – CodeVirtuoso 2012-01-11 13:48:34
perfect ....... `array_values (array_unique ($ array)) `делает для меня совершенным. Спасибо @Freelancer – 2012-07-26 05:43:33