downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

array_intersect_key> <array_flip
Last updated: Fri, 27 Nov 2009

view this page in

array_intersect_assoc

(PHP 4 >= 4.3.0, PHP 5)

array_intersect_assocDizilerin kesişimini hesaplarken ek olarak indisleri de karşılaştırır

Açıklama

array array_intersect_assoc ( array $dizi1 , array $dizi2 [, array $ ... ] )

array_intersect_assoc() işlevi tüm değiştirgelerinde mevcut olan dizi1 değerlerini içeren bir dizi döndürür. array_intersect() işlevinin aksine karşılaştırmada anahtarların kullanıldığına dikkat ediniz.

Değiştirgeler

dizi1

Diğer dizilerin karşılaştırılacağı ilk dizi.

dizi2

Değerleri ilk dizi ile karşılaştırılacak dizi.

...

Değerleri ilk dizi ile karşılaştırılacak diğer dizilerin değişkenlerinin listesi.

Dönen Değerler

Tüm değiştirgelerde mevcut dizi1 değerlerini içeren bir dizi döndürür.

Örnekler

Örnek 1 - array_intersect_assoc() örneği

<?php
$array1 
= array("a" => "green""b" => "brown""c" => "blue""red");
$array2 = array("a" => "green""yellow""red");
$result_array array_intersect_assoc($array1$array2);
print_r($result_array);
?>

Yukarıdaki örneğin çıktısı:

Array
(
    [a] => green
)

Örnekte gördüğünüz gibi her iki dizide de sadece "a" => "green" ortak olduğundan dönen dizi sadece bu elemanı içermektedir. "red" değerinin döndürülmeme sebebi birinci dizide indisi 0 iken ikinci dizide 1 olmasıdır.

İki elemanın eşit olması için sadece ve sadece (string) $elem1 === (string) $elem2 olmalıdır. Başka bir deyişle, elemanların dizgesel gösterimleri aynı olmalıdır.

Ayrıca Bakınız

  • array_intersect() - Dizilerin kesişimini hesaplar
  • array_uintersect_assoc() - Veriyi bir geriçağırım işleviyle karşılaştırarak dizilerin kesişimini hesaplarken ek olarak indislere de bakar
  • array_intersect_uassoc() - Dizilerin kesişimini hesaplarken ek olarak bir geriçağırım işlevi üzerinden indisleri de karşılaştırır
  • array_uintersect_uassoc() - Veriyi ve indisleri bir geriçağırım işleviyle karşılaştırarak dizilerin kesişimini hesaplarken ek olarak indislere de bakar
  • array_diff() - Dizilerin farkını hesaplar
  • array_diff_assoc() - Dizilerin farkını hesaplarken ek olarak indisleri de karşılaştırır


array_intersect_key> <array_flip
Last updated: Fri, 27 Nov 2009
 
add a note add a note User Contributed Notes
array_intersect_assoc
amoo_miki at yahoo dot com
17-Jul-2009 07:58
A method to find intersection of two or more arrays when comparison is based only on keys

array_uintersect_assoc($array1  , $array2  [, $ array...  ], create_function(null, "return 0;"));

This returns an associative array containing all the keys in array1 that are present in all of the arguments.
asharm4 at ilstu dot edu
20-Apr-2006 04:20
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;
}
StR: str at strgt dot cjb dot net
14-Oct-2005 12:34
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;
}
?>
vandor at progressive dot hu
14-Dec-2004 07:26
# 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
)
nleippe at integr8ted dot com
12-Feb-2004 12:46
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;
}
?>

array_intersect_key> <array_flip
Last updated: Fri, 27 Nov 2009
 
 
show source | credits | stats | sitemap | contact | advertising | mirror sites