Home >Backend Development >PHP Tutorial >Learn a new PHP function every day (2) array_diff()/array_diff_key()/array_diff_assoc()_PHP tutorial
Description
array_diff() returns an array containing all values in array1 that are not in any other argument array. Note that the key names remain unchanged.
Liezi
<code><!--?php $array1 = array("a" =--> "green", "red", "blue", "red"); $array2 = array("b" => "green", "yellow", "red"); $result = array_diff($array1, $array2); print_r($result); ?> </code>
The output result is
<code>Array([1] => blue) </code>
Attention
Two cells are considered identical only if (string) $elem1 === (string) $elem2. That is, when the string expressions are the same. Note that this function only checks one dimension of a multidimensional array. Of course you can use array_diff($array1[0], $array2[0]); to check deeper dimensions.
Description
array_diff_assoc() returns an array containing all values in array1 that are not in any other argument array. Note that unlike array_diff(), key names are also used for comparison.
Lie Zi
<code><!--?php $array1 = array("a" =--> "green", "b" => "brown", "c" => "blue", "red"); $array2 = array("a" => "green", "yellow", "red"); $result = array_diff_assoc($array1, $array2); print_r($result); ?> </code>
Output
<code>Array( [b] => brown [c] => blue [0] => red ) </code>
In the above example, you can see that the key-value pair "a" => "green" is present in both arrays, so it is not included in the output of this function. In contrast, the key-value pair 0 => "red" appears in the output because the key of "red" in the second parameter is 1.
Liezi 2
<code><!--?php $array1 = array(0, 1, 2); $array2 = array("00", "01", "2"); $result = array_diff_assoc($array1, $array2); print_r($result); ?--> </code>
Output
<code>Array( [0] => 0 [1] => 1 ) </code>
Two values in the key => value pair are considered equal only if (string)
Attention
Note: Note that this function only checks one dimension of the multi-dimensional array. Of course you can use array_diff_assoc($array1[0], $array2[0]); to check deeper dimensions.
Description
Compare the key names in array1 with array2 and return items with different key names. This function is the same as array_diff() except that the comparison is based on keys rather than values.
Returns an array containing the values of all keys that appear in array1 but do not appear in any other parameter array.
Liezi
<code><!--?php $array1 = array('blue' =--> 1, 'red' => 2, 'green' => 3, 'purple' => 4); $array2 = array('green' => 5, 'blue' => 6, 'yellow' => 7, 'cyan' => 8); var_dump(array_diff_key($array1, $array2)); ?> </code>
Output
<code>array(2) { ["red"]=> int(2) ["purple"]=> int(4) } </code>
Two key names in a key => value pair are considered equal only if (string)$key1 === (string) $key2 . In other words, strict type checking is performed, so the string representations must be exactly the same.
Description
array_intersect() returns an array containing all values in array1 that are also present in all other argument arrays. Note that the key names remain unchanged.