如何将数组合并为相同的值?

时间:2017-06-29 13:45:52

标签: arrays

我正在使用一个查询,但我无法通过emil添加组,所以我使用其他选项,但我无法理解如何将contact_email与mt4_account_no分组。

我的阵列提到了打击:

[0] => Array
        (
            [contact_fullName] => Walt Wuller
            [contact_email] => walt.wuller@ww.in
            [mt4_account_no] => 12291
            [balance] => 0
        )

    [1] => Array
        (
            [contact_fullName] => Walt Wuller
            [contact_email] => walt.wuller@ww.in
            [mt4_account_no] => 12293
            [balance] => 0
        )

    [2] => Array
        (
            [contact_fullName] => Walt Wuller
            [contact_email] => walt.wuller@ww.in
            [mt4_account_no] => 12289
            [balance] => 7480.69
        )

    [3] => Array
        (
            [contact_fullName] => Walt Wuller
            [contact_email] => walt.wuller@ww.in
            [mt4_account_no] => 12292
            [balance] => 0
        )

但我想这样创作:

Array
(
    [0] => Array
        (
            [contact_fullName] => Walt Wuller
            [contact_email] => walt.wuller@ww.in
            [mt4_account_no] => Array
                (
                    [0] => 12291
                    [1] => 12293
                    [2] => 12289
                    [3] => 12292
                )

            [balance] => Array
                (
                    [0] => 0
                    [1] => 0
                    [2] => 7480.69
                    [3] => 0
                )

        )

)

所以我怎么能创建这种数组。

1 个答案:

答案 0 :(得分:0)

试试这个:

 $array =array(
        0=> Array
            (
                'contact_fullName' => 'Walt Wuller',
                'contact_email' => 'walt.wuller@ww.in',
                'mt4_account_no' => '12291',
                'balance' => '0',
            ),

        1 => Array
            (
                'contact_fullName' => 'Walt Wuller',
                'contact_email' => 'walt.wuller@ww.in',
                'mt4_account_no' => '12292',
                'balance' => '0',
            ),

        2 => Array
            (
                'contact_fullName' => 'Walt Wuller',
                'contact_email' => 'walt.wuller@ww.in',
                'mt4_account_no' => '12293',
                'balance' => '3434',
            ),

        3 => Array
            (
                'contact_fullName' => 'Walt Wuller',
                'contact_email' => 'walt.wuller@ww.in',
                'mt4_account_no' => '12295',
                'balance' => '0',
            )
        );

    $contact =array();
    $mt4 =array();
    $balance =array();

    foreach ($array as $key => $val)
    {
        $contact[$val['contact_fullName']]= array($val['contact_fullName'], $val['contact_email']) ;
        $mt4[$val['contact_fullName']][] = $val['mt4_account_no'];
        $balance[$val['contact_fullName']][]  = $val['balance'];
    }

    $new_array = array();
    foreach($contact as $key => $value)
    {
        $new_array[] = array(
                'contact_fullName' => $value[0],
                'contact_email' => $value[1],
                'mt4_account_no' => $mt4[$value[0]],
                'balance' => $balance[$value[0]],
        );
    }
    print '<pre>';
    print_r($new_array);