php使用特定键提取子数组

php使用特定键提取子数组,php,Php,如果我有以下数组: array( 'var1' => 123, 'var2' => 234, 'var3' => 345 ); 我想提取其中的特定部分来构建一个新的数组,即var1和var3 我期待的结果是: array( 'var1' => 123, 'var3' => 345 ); 发布的示例非常精简,实际上数组中有更多的键,我希望提取更多的键,并且一些键可能存在,也可能不存在 是否有内置的php函数来执行此操作 编辑: 要提取

如果我有以下数组:

array(
   'var1' => 123,
   'var2' => 234,
   'var3' => 345
);
我想提取其中的特定部分来构建一个新的数组,即var1和var3

我期待的结果是:

array(
   'var1' => 123,
   'var3' => 345
);
发布的示例非常精简,实际上数组中有更多的键,我希望提取更多的键,并且一些键可能存在,也可能不存在

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

编辑:


要提取的密钥将硬编码为类i..e$this->keystextract

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

$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);

请注意,这很可能是执行此操作最有效的方法。

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

$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);
$result = array_intersect_key($yourarray,array_flip(array('var1','var3')));
请注意,这很可能是最有效的方法

$result = array_intersect_key($yourarray,array_flip(array('var1','var3')));
因此,通过您的编辑:

$result = array_intersect_key($yourarray,array_flip($this->keysToExtract));
因此,通过您的编辑:

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

你在什么情况下提取这些钥匙?我不完全明白。你能解释一下你所说的标准是什么意思吗?是什么让你选择了
var1
var2
,还是随机的?它是否来自另一个阵列?我的问题是你为什么选择这两把钥匙。哦,现在我明白了。我已经更新了问题。谢谢你解释你在什么情况下提取这些钥匙?我不完全明白。你能解释一下你所说的标准是什么意思吗?是什么让你选择了
var1
var2
,还是随机的?它是否来自另一个阵列?我的问题是你为什么选择这两把钥匙。哦,现在我明白了。我已经更新了问题。谢谢你的解释