要将数组中的特定元素保留在新数组中,并保留键,可以使用PHP中的array_intersect_key
函数。这个函数允许你根据键来比较两个数组,并返回一个包含在两个数组中都存在的键及其对应值的新数组。
假设我们有一个原始数组和一个键数组,我们想要保留原始数组中存在于键数组中的所有键及其对应的值。
<?php
// 原始数组
$originalArray = [
'a' => 'Apple',
'b' => 'Banana',
'c' => 'Cherry',
'd' => 'Date'
];
// 需要保留的键数组
$keysToKeep = ['b', 'd'];
// 使用array_flip将键数组转换为值数组,以便使用array_intersect_key
$keysArray = array_flip($keysToKeep);
// 获取新数组,其中只包含原始数组中指定的键及其对应的值
$newArray = array_intersect_key($originalArray, $keysArray);
print_r($newArray);
?>
Array
(
[b] => Banana
[d] => Date
)
如果你遇到了问题,比如没有得到预期的结果,可以检查以下几点:
array_flip
函数。var_dump
或print_r
来查看中间结果,确保每一步都按预期进行。通过这种方式,你可以有效地根据键来筛选数组,并保留所需的数据。