相同值的PHP采样

相同值的PHP采样,php,Php,我有一个包含数据的数组: array(4) { [0]=> array(3) { ["number"]=> string(10) "8678664470" ["created_at"]=> string(10) "2018-08-11" ["title"]=> string(18) "Quaerat vol

我有一个包含数据的数组:

array(4) {
    [0]=>
        array(3) {
            ["number"]=>
            string(10) "8678664470"
            ["created_at"]=>
            string(10) "2018-08-11"
            ["title"]=>
            string(18) "Quaerat voluptatem"
        }
    [1]=>
         array(3) {
             ["number"]=>
             string(10) "8678664470"
             ["created_at"]=>
             string(10) "2018-08-11"
             ["title"]=>
             string(15) "Et dolore magna"
        }
    [2]=>
        array(3) {
            ["number"]=>
            string(10) "0535783461"
            ["created_at"]=>
            string(10) "2018-08-15"
            ["title"]=>
            string(27) "Laborious physical exercise"
        }
    [3]=>
        array(3) {
            ["number"]=>
            string(10) "0535783461"
            ["created_at"]=>
            string(10) "2018-08-15"
            ["title"]=>
            string(15) "Natus error sit"
        }
}
如何制作此阵列?需要收集所有
标题
,其中相同的
编号
处创建

array(2) {
  [0]=>
    array(3) {
        ["number"]=>
        string(10) "8678664470"
        ["created_at"]=>
        string(10) "2018-08-11"
        ["title"]=>
            array(2) {
                [0]=>
                    string(18) "Quaerat voluptatem"
                [1]=>
                    string(15) "Et dolore magna"
            }
     }
   [1]=>
     array(3) {
         ["number"]=>
         string(10) "0535783461"
         ["created_at"]=>
         string(10) "2018-08-15"
         ["title"]=>
            array(2) {
                [0]=>
                    string(27) "Laborious physical exercise"
                [1]=>
                    string(15) "Natus error sit"
            }
    }
 }

下面是一种使用关联数组为已看到的条目累积标题的方法。一次完成(线性时间复杂度):

输出:

数组(2){
[0]=>
阵列(3){
[“数字”]=>
串(10)“8678664470”
[“创建于”]=>
字符串(10)“2018-08-11”
[“标题”]=>
阵列(2){
[0]=>
字符串(18)“Quaerat voluptatem”
[1]=>
管柱(15)“Et dolore magna”
}
}
[1]=>
阵列(3){
[“数字”]=>
串(10)“0535783461”
[“创建于”]=>
字符串(10)“2018-08-15”
[“标题”]=>
阵列(2){
[0]=>
弦乐(27)“艰苦的体育锻炼”
[1]=>
字符串(15)“Natus error sit”
}
}
}

在原始阵列上循环,并根据匹配的数据构建一个新阵列。我知道这个想法,但我不明白。这不是我需要的
function mergeTitles($data) {
    $result = [];

    foreach ($data as $e) {
        $key = $e['number'] . "&" . $e['created_at'];

        if (!array_key_exists($key, $result)) {
            $result[$key] = $e;
            $result[$key]['title'] = [];
        }

        $result[$key]['title'][] = $e['title'];
    }

    return array_values($result);
}