4

我有一个像下面这样的数组

数组( [0] => "txt1" [1] => "txt2" [2] => "txt3")

我有另一个类似的数组,但内容不同:数组([0] => on [2] => on)

目的是得到一个包含第二个键和第一个内容的最终数组,就像合并它们一样。

这样最终的结果是: Array ( [0] => "txt1" [2] => "txt3") 把key改成0-1会更好,不过这是个小问题,我们重点来合并它们一对一。

4

3 回答 3

11

最简单的方法是使用array_intersect_key请参阅 PHP 文档)。它从传递的第一个数组中获取与传递的所有其他数组中存在的键相对应的值。

因此,您的示例将如下所示:

$a = array(0 => "txt1", 1 => "txt2", 2 => "txt3");
$b = array(0 => 1, 2 => 1);
$c = array_intersect_key($a, $b);
print_r($c);

印刷:

Array
(
    [0] => txt1
    [2] => txt3
)
于 2009-03-23T11:46:01.177 回答
2

array_combine- 通过使用一个数组作为键和另一个作为其值来创建一个数组

于 2009-03-23T15:08:36.307 回答
2

你为什么不使用简单的解决方案?

foreach($arr2 as $k=>$v) {
    $a[$k] = $arr1[$k];
}
于 2009-03-23T15:16:21.623 回答