0

如果我有以下数组:

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

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

我要寻找的结果是:

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

发布的示例非常精简,实际上该数组具有更多的键,我希望提取更多的键,并且某些键可能存在也可能不存在。

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

编辑:

要提取的键将被硬编码为类中的数组,即 $this->keysToExtract

4

2 回答 2

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

因此,通过您的编辑:

$result = array_intersect_key($yourarray,array_flip($this->keysToExtract));
于 2013-07-10T22:11:15.987 回答
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);

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

于 2013-07-10T22:10:50.393 回答