如何连接共享相同键的数组元素的值以删除重复键?

时间:2012-01-02 04:37:07

标签: php multidimensional-array

我有一个多维PHP数组:

$arr = array(0 => array('www.foo.com' => 'a'), 1 => array('www.bar.com' => 'b'), 2 => array('www.foo.com' => 'c'));

如何连接共享相同密钥的值,然后删除重复项,以便我留下:

$arr = array(0 => array('www.foo.com' => 'a,c'), 1 => array('www.bar.com' => 'b'));

2 个答案:

答案 0 :(得分:2)

没有内置函数以您在示例中的方式连接值。

array_combine()连接数组。

您需要一个有点模仿该功能的函数,但不是删除已经有值的键的值,而是需要进行字符串连接。

function array_concat(Array $array1array, Array $array2array) {
    foreach ($array2array as $key => $value) {
        $newval = "";
        if (isset($array1array[$key])) {
            $newval = $array1array[$key] . ",";
        }
        $array1array[$key] = $newval . $value;
    }
    return $array1array;
}

从那里你需要调整该函数以应用于多维数组。

答案 1 :(得分:0)

你可以使用array_keys函数循环遍历数组来获取任何现有键的键,一旦你弄清楚你有多少你可以编辑数组的第一个实例以获得多个值然后取消设置其余的价值观。

array_keys:http://www.php.net/manual/en/function.array-keys.php

取消设定:http://php.net/manual/en/function.unset.php