PHP 多维数组删除索引键并合并


PHP Multidimension array remove index key and combine

我有一个数组如下。我需要没有索引键(0,1,2)的新数组,并组合具有重复主题的数组。

Array
(
[0] => Array
    (
        [email] => Array
            (
                [subject] => subjecting
                [to] => testemail@gmail.com
            )
    )
[1] => Array
    (
        [email] => Array
            (
                [subject] => bothsubject
                [to] => textmail@gmail.com
            )
    )
[2] => Array
    (
        [email] => Array
            (
                [subject] => bothsubject
                [to] => textmail11@gmail.com
            )
    )
 )

输出应如下所示

  [email] => Array
            (
                [subject] => subjecting
                [to] => testemail@gmail.com
            )
            [email] => Array
            (
                [subject] => bothsubject
                [to] =>textmail@gmail.com, textmail11@gmail.com
            )

我已经尝试了array_map函数,foreach 循环,不幸的是不知道如何执行。

您可以使用以主题作为键的中间数组:

$source = array(
    array(
        'email' => array(
            'subject' => "subjecting",
            'to' => 'bharat@intricare.net',
            )
        ),
    array(
        'email' => array(
            'subject' => 'bothsubject',
            'to' => 'textmail@gmail.com'
            )
        ),
    array(
        'email' => array(
            'subject' => 'bothsubject',
            'to' => 'textmail11@gmail.com'
            )
        )
    );
$subjects = array();
foreach ($source as $item) {
    $to = $item['email']['to'];
    $subject = $item['email']['subject'];
    if (isset($subjects[$subject]))
        $to = implode(',', array($subjects[$subject], $to));
    $subjects[$subject] = $to;
}
$result = array();
foreach ($subjects as $subject => $to) {
    $result[] = array(
        'email' => array(
            'subject' => $subject,
            'to' => $to
        )
    );
}

输出:https://eval.in/538532