如何确定如果数组键等于PHP中的另一个数组值

时间:2014-12-12 12:08:32

标签: php

我有一个像array1这样的数组:

Array
(
    [KAYSERİ EĞİTİM VE ARAŞTIRMA HASTANESİ] => Array
        (
            [27] => 1.31198374980837
            [28] => 1.31964897687573
            [29] => 1.30662343606958
            [30] => 1.36594872689222
            [31] => 1.32326024327785
            [32] => 1.34235680913653
            [33] => 1.3180530016225
        )

)

此数组键存在于另一个数组values-array2:

Array
(
    [0] => Array
        (
            [HASTANEKODU] => 2784
            [HASTANEADI] => KAYSERİ EĞİTİM VE ARAŞTIRMA HASTANESİ
            [SEHIR] => Kayseri
            [DONEM] => HAZİRAN 2013
            [DONEMKODU] => 32

        )

    [1] => Array
        (
            [HASTANEKODU] => 2784
            [HASTANEADI] => KAYSERİ EĞİTİM VE ARAŞTIRMA HASTANESİ
            [SEHIR] => Kayseri
            [DONEM] => OCAK 2013
            [DONEMKODU] => 27

        )

    [2] => Array
        (
            [HASTANEKODU] => 2784
            [HASTANEADI] => KAYSERİ EĞİTİM VE ARAŞTIRMA HASTANESİ
            [SEHIR] => Kayseri
            [DONEM] => NİSAN 2013
            [DONEMKODU] => 30

        )

    [3] => Array
        (
            [HASTANEKODU] => 2784
            [HASTANEADI] => KAYSERİ EĞİTİM VE ARAŞTIRMA HASTANESİ
            [SEHIR] => Kayseri
            [DONEM] => TEMMUZ 2013
            [DONEMKODU] => 33

        )

    [4] => Array
        (
            [HASTANEKODU] => 2784
            [HASTANEADI] => KAYSERİ EĞİTİM VE ARAŞTIRMA HASTANESİ
            [SEHIR] => Kayseri
            [DONEM] => MAYIS 2013
            [DONEMKODU] => 31
            [YIL] => 2013
            [ROL] => AI
            [STATU] => DEVLET
            [TOPLAMBAGIL] => 9269.6
            [TOPLAMYATISGUNU] => 29602
            [YATISORTALAMAGUN] => 4.73783610755442
            [YATANHASTASAYISI] => 6248
            [VAKAKARMASI] => 1.32326024327785
        )

    [5] => Array
        (
            [HASTANEKODU] => 2784
            [HASTANEADI] => KAYSERİ EĞİTİM VE ARAŞTIRMA HASTANESİ
            [SEHIR] => Kayseri
            [DONEM] => ŞUBAT 2013
            [DONEMKODU] => 28

        )

    [6] => Array
        (
            [HASTANEKODU] => 2784
            [HASTANEADI] => KAYSERİ EĞİTİM VE ARAŞTIRMA HASTANESİ
            [SEHIR] => Kayseri
            [DONEM] => MART 2013
            [DONEMKODU] => 29

        )

) 

如果array-1键等于array-2 DONEMKODU值,我想从array-2获取DONEM值。

我试过这段代码:

$donem=array();

foreach($array2 as $ar){

 foreach($array1 as $key => $value){
  if($key==$ar['DONEMKODU']){

   $donem[]=$ar['DONEM'];
}
}
}

但我的代码不起作用。我们应该怎么做才能获得这个?

由于

1 个答案:

答案 0 :(得分:1)

您正在遍历$array1个密钥,但它只有一个值为KAYSERİ EĞİTİM VE ARAŞTIRMA HASTANESİ的密钥。因此,如果您需要更深入的迭代,请将代码更改为

$donem=array();

foreach ($array1 as $topValue){
    foreach ($topValue as $key => $value) {
        foreach ($array2 as $ar){
            if($key == $ar['DONEMKODU']){
                $donem[] = $ar['DONEM'];
            }
        }
    }
}