将数组的值链接到另一个

时间:2011-11-28 23:47:02

标签: php arrays associative-array

我有2个数组 - 一个数组来自数据库,另一个来自外部json:

$album = array( 'author' => 'John', 'id' => '1', 'title' => 'great trip', 'url' => 'http://somelink/index.php?view=show&id=13');

$likes = array( 'link' => 'http://somelink/index.php?view=show&id=13', 'likes' => '30', 'name' => 'great trip');

我想在正确的相册中显示喜欢的数量。 最好的方法是什么?

谢谢!

1 个答案:

答案 0 :(得分:0)

由于你的问题有些模糊,我会说一般来说,在特定公共元素上合并两个数组的最简单方法是使用common元素作为键:

$array1 = array(
    array('id' => 1, 'foo' => 'bar'),
    array('id' => 2, 'foo' => 'baz')
);

$array2 = array(
    array('id' => 1, 'name' => 'John'),
    array('id' => 3, 'name' => 'Jack')
);

$merged = array();

foreach ($array1 as $element) {
    $merged[$element['id']] = $element;
}

foreach ($array2 as $element) {
    if (isset($merged[$element['id']])) {
        $merged[$element['id']] += $element;
    } else {
        $merged[$element['id']] = $element;
    }
}

$merged[$element['id']]只能存在一次,因此您可以使用它来合并两个数组。