php提取具有特定键的子数组

时间:2013-07-10 22:08:03

标签: php

如果我有以下数组:

array(
   'var1' => 123,
   'var2' => 234,
   'var3' => 345
);

我想提取这个的特定部分来构建一个新的数组,即var1和var3。

我想要的结果是:

array(
   'var1' => 123,
   'var3' => 345
);

发布的示例非常简单,实际上阵列有更多的键,我希望提取更多的键,也可能有一些键可能存在。

是否有内置的php函数来执行此操作?

编辑:

要提取的键将被硬编码为类i..e $ this-> keysToExtract

中的数组

2 个答案:

答案 0 :(得分:3)

$result = array_intersect_key($yourarray,array_flip(array('var1','var3')));

所以,通过编辑:

$result = array_intersect_key($yourarray,array_flip($this->keysToExtract));

答案 1 :(得分:0)

您不需要内置函数来执行此操作,请尝试以下操作:

$this->keysToExtract = array('var1', 'var3'); // The keys you wish to transfer to the new array

// For each record in your initial array
foreach ($firstArray as $key => $value)
{
    // If the key (ex : 'var1') is part of the desired keys
    if (in_array($key, $this->keysToExtract)
    {
        $finalArray[$key] = $value; // Add to the new array
    }
}

var_dump($finalArray);

请注意,这很可能是最有效的方法。