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
,还是随机的?它是否来自另一个阵列?我的问题是你为什么选择这两把钥匙。哦,现在我明白了。我已经更新了问题。谢谢你的解释