Heim php教程 php手册 php array_flip()与array_uniqure()删除数组重复元素

php array_flip()与array_uniqure()删除数组重复元素

Jun 13, 2016 am 10:02 AM
array flip php Und 元素 删除 existieren 数组 von wiederholen

在php中删除数组重复元素的函数有几个,一个是array_unique()另外就是array_flip()与array_uniqure()函数,但后者比前者性能要高几倍了,所以我只介绍两者来删除重复数组元素了。

方法如下:

 代码如下 复制代码

$arr = array(…………) ;// 假设有数组包含一万个元素,里面有重复的元素。

 
$arr = array_flip(array_flip($arr)); // 这样便可以删除重复元素。

 
究竟是怎么回事呢?来看下array_flip()的作用:array_flip()用于将一个数组的每个元素的键和值交换,如:

 代码如下 复制代码

 
$arr1 = array("age" => 30, "name" => '快乐园');

 
$arr2 = array_flip($arr1); // $arr2 就是 array(30 => "age", '快乐园' => "name");

 
在PHP数组中,允许不同的元素可以取同一个值,但不允许同一个键名被不同的元素使用,如:

 代码如下 复制代码

 
$arr1 = array("age" => 30, "name" => '快乐园', "age" => 20); "age" => 2 0将会取代 "age" => 30

 
$arr1 = array("name" => '快乐园', "age" => 45);

 
这里 $arr1与$arr2 是相等的。

 
于是,我们便可以知道,为什么 array_flip(array_flip($arr)) 可以删除数组中重复的元素了。首先,$arr里的值会变成键名,因为值是有重复的,变成键名之后这些重复的值便成了重复的键名,PHP 引擎将重复的键名删除,只保留最后一个。如:

 

 代码如下 复制代码

$arr1 = array("age" => 30, "name" => '快乐园', "age" => 20);

 
$arr1 = array_flip($arr1); // $arr1 变成了 array("快乐园" => "name", 20 => "age");

 
// 再把 $arr1 的键名与值还复:

 
$arr1 = array_flip($arr1);

 
上面的代码写得简洁一些就是: $arr1 = array_flip(array_flip($arr1));


一些自定的函数

//删除数组中重复元素的函数

 代码如下 复制代码
function delmember(&$array, $id)
{
$size = count($array);
for($i = 0; $i {
$array[$id + $i] = $array[$id + $i + 1];
}
unset($array[$size - 1]);
}

//使用例子:

 代码如下 复制代码

$output = array(1, 2, 2, 'www.bKjia.c0m', 5, 4, 4, 4, 2, 7, 5, 9, 10);
delsame($output);
while(list($key, $value) = each($output))
{
echo "$key:$value"."
";
}
//方法二

function uniquearray($array)

{

// get unique elts as keys in assoc. array

for ($i=0,$n=count($array, 1);$i

$u_array[$array[$i]] = 1;

 

// copy keys only into another array

reset($u_array, 1);

for ($i=0,$n=count($u_array, 1);$i

$unduplicated_array[] = key($u_array, 1);

next($u_array, 1);

}

return $unduplicated_array;

}

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Artikel -Tags

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian

CakePHP-Projektkonfiguration CakePHP-Projektkonfiguration Sep 10, 2024 pm 05:25 PM

CakePHP-Projektkonfiguration

CakePHP Datum und Uhrzeit CakePHP Datum und Uhrzeit Sep 10, 2024 pm 05:27 PM

CakePHP Datum und Uhrzeit

CakePHP-Datei hochladen CakePHP-Datei hochladen Sep 10, 2024 pm 05:27 PM

CakePHP-Datei hochladen

CakePHP-Routing CakePHP-Routing Sep 10, 2024 pm 05:25 PM

CakePHP-Routing

Besprechen Sie CakePHP Besprechen Sie CakePHP Sep 10, 2024 pm 05:28 PM

Besprechen Sie CakePHP

So richten Sie Visual Studio-Code (VS-Code) für die PHP-Entwicklung ein So richten Sie Visual Studio-Code (VS-Code) für die PHP-Entwicklung ein Dec 20, 2024 am 11:31 AM

So richten Sie Visual Studio-Code (VS-Code) für die PHP-Entwicklung ein

CakePHP-Kurzanleitung CakePHP-Kurzanleitung Sep 10, 2024 pm 05:27 PM

CakePHP-Kurzanleitung

See all articles