您有个知识币

【退出】

php数组差集

php数组差集如何取呢?这里说的php数组差集是指在第一个数组中但其他输入数组中没有的值。

php为php数组差集提供了很好用的三个方法:

array_diff(array array1,array array2[,arrayN…])

array_diff_assoc(array array1,array array2[,arrayN…])

array_diff_key(array array1,array array2[,arrayN…])

以上三个方法都是得到php数组差集的方法,功能分别介绍如下:

array_diff(array array1,array array2[,arrayN…])

函数array_diff()返回出现在第一个数组中但其他输入数组中没有的值。这个功能与array_intersect()相反。

实例如下:

Php代码

<?php

$fruit1 = array("Apple","Banana","Orange");

$fruit2 = array("Pear","Apple","Grape");

$fruit3 = array("Watermelon","Orange","Apple");

$intersection = array_diff($fruit1, $fruit2, $fruit3);

print_r($intersection);

// output

// Array ( [1] => Banana )

?>

array_diff_assoc(array array1,array array2[,arrayN…])

函数array_diff_assoc()与array_diff()基本相同,只是它在比较时还考虑了数组的键。因此,只在第一个数组中出现而不再其他输入数组中出现的键/值对才会返回到结果数组中。其形式如下:

下面的例子只返回了[yellow] => Banana,因为这个特殊的键/值对出现在$fruit1中,而在$fruit2和$fruit3中都不存在。

Php代码

<?php

$fruit1 = array("red"=>"Apple","yellow"=>"Banana","orange"=>"Orange");

$fruit2 = array("yellow"=>"Pear","red"=>"Apple","purple"=>"Grape");

$fruit3 = array("green"=>"Watermelon","orange"=>"Orange","red"=>"Apple");

$intersection = array_diff_assoc($fruit1, $fruit2, $fruit3);

print_r($intersection);

// output

// Array ( [yellow] => Banana )

?>

使用数组的过程中经常要遍历数组。通常需要遍历数组并获得各个键或值(或者同时获得键和值),所以毫不奇怪,PHP为此提供了一些函数来满足需求。许多函数能完成两项任务,不仅能获取当前指针位置的键或值,还能将指针移向下一个适当的位置。

array_diff_key(array array1,array array2[,arrayN…])

函数array_diff_key()比较的是数组的键值,可用一个或任意多个数组与第一个数组进行比较,仅仅键名用于比较。

实例如下:

<?php

$a1=array(0=>"Cat",1=>"Dog",2=>"Horse");

$a2=array(2=>"Bird",3=>"Rat",4=>"Fish");

$a3=array(5=>"Horse",6=>"Dog",7=>"Bird");

print_r(array_diff_key($a1,$a2,$a3));

?>

本文固定链接: http://www.webzhishi.com/php_diff_1/ | web知识网

【上一篇】
【下一篇】

php数组差集:等您坐沙发呢!

发表评论