|
array_intersect_assoc
Computes the intersection of arrays with additional index check
(PHP 4 >= 4.3.0, PHP 5)
Example 249. array_intersect_assoc() example<?php The above example will output: Array Related Examples ( Source code ) » array_intersect_assoc Examples ( Source code ) » array_intersect_assoc Code Examples / Notes » array_intersect_assocstr: str
To find the keys that are in 2 arrays, without caring of the values: This is a function i needed, and it also returns the values of the first array <?php function array_key_intersect(&$a, &$b) { $array = array(); while (list($key,$value) = each($a)) { if (isset($b[$key])) $array[$key] = $value; } return $array; } ?> asharm4
A function to find intersection of two arrays when comparison is based on only 1 key function array_common($array1,$array2,$compareString) { if (!is_array($array1) || !is_array($array2)) { return false; } $arrResult = array(); foreach ($array1 as $arrInsideArray1) { foreach ($array2 as $arrInsideArray2) { $found=false; if ($arrInsideArray1[$compareString]==$arrInsideArray2[$compareString]) { $found=true; break; } } if ($found) { array_push($arrResult,$arrInsideArray1); } } return $arrResult; } nleippe
A combination of the two functions [array_intersect() and array_intersect_assoc()] in order to obtain the intersection of two multidimensional arrays. <?php function array_intersect_assoc_recursive(&$arr1, &$arr2) { if (!is_array($arr1) || !is_array($arr2)) { return $arr1 == $arr2; // or === for strict type } $commonkeys = array_intersect(array_keys($arr1), array_keys($arr2)); $ret = array(); foreach ($commonkeys as $key) { $ret[$key] =& array_intersect_assoc_recursive($arr1[$key], $arr2[$key]); } return $ret; } ?> vandor
# ket tomb kulcs alapu metszetet szamitja ki, az erteken is ellenorzest vegez # # calculating (key base) intersection of arrays (value are checked) # use: $result_array = array_intersect_assoc($a1, $a2, $a3,..); # ## # original code by [jochem at iamjochem dawt com] : array_diff_keys() <?php function array_intersect_assoc() { $args = func_get_args(); $res = $args[0]; for ($i=1;$i<count($args);$i++) { if (!is_array($args[$i])) {continue;} foreach ($res as $key => $data) { if ( (!array_key_exists($key, $args[$i])) || ( (isset($args[$i][$key])) && ($args[$i][$key] !== $res[$key]) ) ) { unset($res[$key]); } } } return $res; } ?> <?php $array1 = array("a"=>"green", "b"=>"brown", "c"=>"blue", "red"); $array2 = array("a"=>"green", "b"=>"yellow", "c"=>"yellow", "red"); $a = array('a'=>'green', 'b'=>'brown', 'c'=>'yellow'); $b = array('a'=>'green', 'b'=>'brown', 'c'=>'yellow', 'e'=>'yellow'); $result_array = array_intersect_assoc($a, $b, $array1, $array2); ?> $args array will look like: ( 0 => ( a => green b => brown c => yellow ) 1 => ( a => green b => brown c => yellow e => yellow ) 2 => ( a => green b => brown c => blue 0 => red ) 3 => ( a => green b => yellow c => yellow 0 => red ) ) $result_array will look like: ( a => green ) |
Change Languagearray_change_key_case array_chunk array_combine array_count_values array_diff_assoc array_diff_key array_diff_uassoc array_diff_ukey array_diff array_fill_keys array_fill array_filter array_flip array_intersect_assoc array_intersect_key array_intersect_uassoc array_intersect_ukey array_intersect array_key_exists array_keys array_map array_merge_recursive array_merge array_multisort array_pad array_pop array_product array_push array_rand array_reduce array_reverse array_search array_shift array_slice array_splice array_sum array_udiff_assoc array_udiff_uassoc array_udiff array_uintersect_assoc array_uintersect_uassoc array_uintersect array_unique array_unshift array_values array_walk_recursive array_walk array arsort asort compact count current each end extract in_array key krsort ksort list natcasesort natsort next pos prev range reset rsort shuffle sizeof sort uasort uksort usort |