繁体   English   中英

使用php格式化数组

[英]formatting an array using php

我有以下具有重复数据的数组:

Array
(
    [0] => Array
        (
            [orders] => Array
                (
                    [id] => 9
                    [name] => Abdus Sattar Bhuiyan
                    [email] => sattar.kuet@gmail.com
                    [mobile] => 01673050495
                    [alt_mobile] => 01818953250
                    [city_id] => 2
                    [location_id] => 5
                    [status] => No contact
                    [chashed] => NO
                    [created] => 2015-06-27 12:49:34
                    [modified] => 2015-06-27 12:49:34
                    [comment] => 
                )

            [order_products] => Array
                (
                    [id] => 2
                    [order_id] => 9
                    [product_id] => 1
                    [pieces] => 1
                )

            [products] => Array
                (
                    [id] => 1
                    [category_id] => 1
                    [name] => নভোযানের নাম সি প্রোগ্রামিং
                    [writer] => Engr. Abdus Sattar Bhuiyan
                    [created] => 2015-06-24 16:17:45
                )

            [psettings] => Array
                (
                    [id] => 1
                    [category_id] => 1
                    [product_id] => 1
                    [img] => 1.jpg
                    [desc] => description
                    [created] => 2015-06-28 00:28:26
                    [bppp] => 44000
                    [sppp] => 45000
                    [discount] => 25
                    [service_charge] => 30
                )

        )

    [1] => Array
        (
            [orders] => Array
                (
                    [id] => 10
                    [name] => Abdus Sattar Bhuiyan
                    [email] => sattar.kuet@gmail.com
                    [mobile] => 01673050495
                    [alt_mobile] => 01818953250
                    [city_id] => 1
                    [location_id] => 1
                    [status] => No contact
                    [chashed] => NO
                    [created] => 2015-06-28 03:30:25
                    [modified] => 2015-06-28 03:30:25
                    [comment] => 
                )

            [order_products] => Array
                (
                    [id] => 6
                    [order_id] => 10
                    [product_id] => 1
                    [pieces] => 1
                )

            [products] => Array
                (
                    [id] => 1
                    [category_id] => 1
                    [name] => নভোযানের নাম সি প্রোগ্রামিং
                    [writer] => Engr. Abdus Sattar Bhuiyan
                    [created] => 2015-06-24 16:17:45
                )

            [psettings] => Array
                (
                    [id] => 1
                    [category_id] => 1
                    [product_id] => 1
                    [img] => 1.jpg
                    [desc] => description
                    [created] => 2015-06-28 00:28:26
                    [bppp] => 44000
                    [sppp] => 45000
                    [discount] => 25
                    [service_charge] => 30
                )

        )

    [2] => Array
        (
            [orders] => Array
                (
                    [id] => 9
                    [name] => Abdus Sattar Bhuiyan
                    [email] => sattar.kuet@gmail.com
                    [mobile] => 01673050495
                    [alt_mobile] => 01818953250
                    [city_id] => 2
                    [location_id] => 5
                    [status] => No contact
                    [chashed] => NO
                    [created] => 2015-06-27 12:49:34
                    [modified] => 2015-06-27 12:49:34
                    [comment] => 
                )

            [order_products] => Array
                (
                    [id] => 3
                    [order_id] => 9
                    [product_id] => 2
                    [pieces] => 1
                )

            [products] => Array
                (
                    [id] => 2
                    [category_id] => 1
                    [name] => Resonance of creativity with C++
                    [writer] => Engr. Abdus Sattar Bhuiyan
                    [created] => 2015-06-26 07:32:52
                )

            [psettings] => Array
                (
                    [id] => 2
                    [category_id] => 1
                    [product_id] => 2
                    [img] => 2.jpg
                    [desc] => 
                    [created] => 2015-06-26 07:33:41
                    [bppp] => 150
                    [sppp] => 250
                    [discount] => 20
                    [service_charge] => 30
                )

        )

    [3] => Array
        (
            [orders] => Array
                (
                    [id] => 10
                    [name] => Abdus Sattar Bhuiyan
                    [email] => sattar.kuet@gmail.com
                    [mobile] => 01673050495
                    [alt_mobile] => 01818953250
                    [city_id] => 1
                    [location_id] => 1
                    [status] => No contact
                    [chashed] => NO
                    [created] => 2015-06-28 03:30:25
                    [modified] => 2015-06-28 03:30:25
                    [comment] => 
                )

            [order_products] => Array
                (
                    [id] => 5
                    [order_id] => 10
                    [product_id] => 2
                    [pieces] => 1
                )

            [products] => Array
                (
                    [id] => 2
                    [category_id] => 1
                    [name] => Resonance of creativity with C++
                    [writer] => Engr. Abdus Sattar Bhuiyan
                    [created] => 2015-06-26 07:32:52
                )

            [psettings] => Array
                (
                    [id] => 2
                    [category_id] => 1
                    [product_id] => 2
                    [img] => 2.jpg
                    [desc] => 
                    [created] => 2015-06-26 07:33:41
                    [bppp] => 150
                    [sppp] => 250
                    [discount] => 20
                    [service_charge] => 30
                )

        )

    [4] => Array
        (
            [orders] => Array
                (
                    [id] => 9
                    [name] => Abdus Sattar Bhuiyan
                    [email] => sattar.kuet@gmail.com
                    [mobile] => 01673050495
                    [alt_mobile] => 01818953250
                    [city_id] => 2
                    [location_id] => 5
                    [status] => No contact
                    [chashed] => NO
                    [created] => 2015-06-27 12:49:34
                    [modified] => 2015-06-27 12:49:34
                    [comment] => 
                )

            [order_products] => Array
                (
                    [id] => 4
                    [order_id] => 9
                    [product_id] => 3
                    [pieces] => 1
                )

            [products] => Array
                (
                    [id] => 3
                    [category_id] => 1
                    [name] => programming by story C
                    [writer] => Hasibul Hasan Shanto
                    [created] => 2015-06-26 07:35:57
                )

            [psettings] => Array
                (
                    [id] => 3
                    [category_id] => 1
                    [product_id] => 3
                    [img] => 3.jpg
                    [desc] => 
                    [created] => 2015-06-26 07:36:26
                    [bppp] => 150
                    [sppp] => 250
                    [discount] => 10
                    [service_charge] => 30
                )

        )

    [5] => Array
        (
            [orders] => Array
                (
                    [id] => 10
                    [name] => Abdus Sattar Bhuiyan
                    [email] => sattar.kuet@gmail.com
                    [mobile] => 01673050495
                    [alt_mobile] => 01818953250
                    [city_id] => 1
                    [location_id] => 1
                    [status] => No contact
                    [chashed] => NO
                    [created] => 2015-06-28 03:30:25
                    [modified] => 2015-06-28 03:30:25
                    [comment] => 
                )

            [order_products] => Array
                (
                    [id] => 7
                    [order_id] => 10
                    [product_id] => 3
                    [pieces] => 1
                )

            [products] => Array
                (
                    [id] => 3
                    [category_id] => 1
                    [name] => programming by story C
                    [writer] => Hasibul Hasan Shanto
                    [created] => 2015-06-26 07:35:57
                )

            [psettings] => Array
                (
                    [id] => 3
                    [category_id] => 1
                    [product_id] => 3
                    [img] => 3.jpg
                    [desc] => 
                    [created] => 2015-06-26 07:36:26
                    [bppp] => 150
                    [sppp] => 250
                    [discount] => 10
                    [service_charge] => 30
                )

        )

)

我想格式化此数组并产生以下数组:

Array
(
    [0] => Array
        (
            [orders] => Array
                (
                    [id] => 9
                    [name] => Abdus Sattar Bhuiyan
                    [email] => sattar.kuet@gmail.com
                    [mobile] => 01673050495
                    [alt_mobile] => 01818953250
                    [city_id] => 2
                    [location_id] => 5
                    [status] => No contact
                    [chashed] => NO
                    [created] => 2015-06-27 12:49:34
                    [modified] => 2015-06-27 12:49:34
                    [comment] => 
                )

            [order_products] => Array
                (
                    [0] => Array
                        (
                            [id] => 2
                            [order_id] => 9
                            [product_id] => 1
                            [pieces] => 1
                        )

                    [1] => Array
                        (
                            [id] => 3
                            [order_id] => 9
                            [product_id] => 2
                            [pieces] => 1
                        )

                    [2] => Array
                        (
                            [id] => 4
                            [order_id] => 9
                            [product_id] => 3
                            [pieces] => 1
                        )

                )

            [products] => Array
                (
                    [0] => Array
                        (
                            [id] => 1
                            [category_id] => 1
                            [name] => নভোযানের নাম সি প্রোগ্রামিং
                            [writer] => Engr. Abdus Sattar Bhuiyan
                            [created] => 2015-06-24 16:17:45
                        )

                    [1] => Array
                        (
                            [id] => 2
                            [category_id] => 1
                            [name] => Resonance of creativity with C++
                            [writer] => Engr. Abdus Sattar Bhuiyan
                            [created] => 2015-06-26 07:32:52
                        )

                    [2] => Array
                        (
                            [id] => 3
                            [category_id] => 1
                            [name] => programming by story C
                            [writer] => Hasibul Hasan Shanto
                            [created] => 2015-06-26 07:35:57
                        )

                )

            [psettings] => Array
                (
                    [0] => Array
                        (
                            [id] => 1
                            [category_id] => 1
                            [product_id] => 1
                            [img] => 1.jpg
                            [desc] => description
                            [created] => 2015-06-28 00:28:26
                            [bppp] => 44000
                            [sppp] => 45000
                            [discount] => 25
                            [service_charge] => 30
                        )

                    [1] => Array
                        (
                            [id] => 2
                            [category_id] => 1
                            [product_id] => 2
                            [img] => 2.jpg
                            [desc] => 
                            [created] => 2015-06-26 07:33:41
                            [bppp] => 150
                            [sppp] => 250
                            [discount] => 20
                            [service_charge] => 30
                        )

                    [2] => Array
                        (
                            [id] => 3
                            [category_id] => 1
                            [product_id] => 3
                            [img] => 3.jpg
                            [desc] => 
                            [created] => 2015-06-26 07:36:26
                            [bppp] => 150
                            [sppp] => 250
                            [discount] => 10
                            [service_charge] => 30
                        )

                )

        )

    [1] => Array
        (
            [orders] => Array
                (
                    [id] => 10
                    [name] => Abdus Sattar Bhuiyan
                    [email] => sattar.kuet@gmail.com
                    [mobile] => 01673050495
                    [alt_mobile] => 01818953250
                    [city_id] => 1
                    [location_id] => 1
                    [status] => No contact
                    [chashed] => NO
                    [created] => 2015-06-28 03:30:25
                    [modified] => 2015-06-28 03:30:25
                    [comment] => 
                )

            [order_products] => Array
                (
                     [0] => Array
                        ( [id] => 6
                           [order_id] => 10
                           [product_id] => 1
                           [pieces] => 1
                       )
                    [1] => Array
                        (
                            [id] => 5
                            [order_id] => 10
                            [product_id] => 2
                            [pieces] => 1
                        )

                    [2] => Array
                        (
                            [id] => 7
                            [order_id] => 10
                            [product_id] => 3
                            [pieces] => 1
                        )

                )

            [products] => Array
                (
                   [0] => Array
                        (
                            [id] => 1
                            [category_id] => 1
                            [name] => নভোযানের নাম সি প্রোগ্রামিং
                            [writer] => Engr. Abdus Sattar Bhuiyan
                            [created] => 2015-06-24 16:17:45
                   )
                    [1] => Array
                        (
                            [id] => 2
                            [category_id] => 1
                            [name] => Resonance of creativity with C++
                            [writer] => Engr. Abdus Sattar Bhuiyan
                            [created] => 2015-06-26 07:32:52
                        )

                    [2] => Array
                        (
                            [id] => 3
                            [category_id] => 1
                            [name] => programming by story C
                            [writer] => Hasibul Hasan Shanto
                            [created] => 2015-06-26 07:35:57
                        )

                )

            [psettings] => Array
                (
                  [0] => Array
                        (
                    [id] => 1
                    [category_id] => 1
                    [product_id] => 1
                    [img] => 1.jpg
                    [desc] => description
                    [created] => 2015-06-28 00:28:26
                    [bppp] => 44000
                    [sppp] => 45000
                    [discount] => 25
                    [service_charge] => 30
                    )
                    [1] => Array
                        (
                            [id] => 2
                            [category_id] => 1
                            [product_id] => 2
                            [img] => 2.jpg
                            [desc] => 
                            [created] => 2015-06-26 07:33:41
                            [bppp] => 150
                            [sppp] => 250
                            [discount] => 20
                            [service_charge] => 30
                        )

                    [2] => Array
                        (
                            [id] => 3
                            [category_id] => 1
                            [product_id] => 3
                            [img] => 3.jpg
                            [desc] => 
                            [created] => 2015-06-26 07:36:26
                            [bppp] => 150
                            [sppp] => 250
                            [discount] => 10
                            [service_charge] => 30
                        )

                )

        )


)  

我怎样才能做到这一点。 我重新格式化了简单数组,但是格式化对我来说没有意义。 这让我哭。 请帮我。 如果建议使用任何辅助功能,那将是一件真正的礼物。 提前致谢。

您需要执行以下操作:

<?php
$firstArray = Array
(
    '0' => Array
        (
            'orders' => Array
                (
                    'id' => 9,
                    'name' => 'Abdus Sattar Bhuiyan',
                    'email' => 'sattar.kuet@gmail.com',
                    'mobile' => '01673050495',
                    'alt_mobile' => '01818953250',
                    'city_id' => 2,
                    'location_id' => 5,
                    'status' => 'No contact',
                    'chashed' => 'NO',
                    'created' => '2015-06-27 12:49:34',
                    'modified' => '2015-06-27 12:49:34',
                    'comment' => ''
                ),
            'order_products' => Array
                (
                    'id' => 2,
                    'order_id' => 9,
                    'product_id' => 1,
                    'pieces' => 1
                ),
            'products' => Array
                (
                    'id' => 1,
                    'category_id' => 1,
                    'name' => 'নভোযানের নাম সি প্রোগ্রামিং',
                    'writer' => 'Engr. Abdus Sattar Bhuiyan',
                    'created' => '2015-06-24 16:17:45'
                ),
            'psettings' => Array
                (
                    'id' => 1,
                    'category_id' => 1,
                    'product_id' => 1,
                    'img' => '1.jpg',
                    'desc' => 'description',
                    'created' => '2015-06-28 00:28:26',
                    'bppp' => 44000,
                    'sppp' => 45000,
                    'discount' => 25,
                    'service_charge' => 30
                ),
        ),
    '1' => Array
        (
            'orders' => Array
                (
                    'id' => 9,
                    'name' => 'Abdus Sattar Bhuiyan',
                    'email' => 'sattar.kuet@gmail.com',
                    'mobile' => '01673050495',
                    'alt_mobile' => '01818953250',
                    'city_id' => 2,
                    'location_id' => 5,
                    'status' => 'No contact',
                    'chashed' => 'NO',
                    'created' => '2015-06-27 12:49:34',
                    'modified' => '2015-06-27 12:49:34',
                    'comment' => ''
                ),
            'order_products' => Array
                (
                    'id' => 3,
                    'order_id' => 9,
                    'product_id' => 2,
                    'pieces' => 1
                ),
            'products' => Array
                (
                    'id' => 2,
                    'category_id' => 1,
                    'name' => 'Resonance of creativity with C++',
                    'writer' => 'Engr. Abdus Sattar Bhuiyan',
                    'created' => '2015-06-26 07:32:52'
                ),
            'psettings' => Array
                (
                    'id' => 2,
                    'category_id' => 1,
                    'product_id' => 2,
                    'img' => '2.jpg',
                    'desc' => '',
                    'created' => '2015-06-26 07:33:41',
                    'bppp' => 150,
                    'sppp' => 250,
                    'discount' => 20,
                    'service_charge' => 30
                ),
        ),
    '2' => Array
        (
            'orders' => Array
                (
                    'id' => 9,
                    'name' => 'Abdus Sattar Bhuiyan',
                    'email' => 'sattar.kuet@gmail.com',
                    'mobile' => '01673050495',
                    'alt_mobile' => '01818953250',
                    'city_id' => 2,
                    'location_id' => 5,
                    'status' => 'No contact',
                    'chashed' => 'NO',
                    'created' => '2015-06-27 12:49:34',
                    'modified' => '2015-06-27 12:49:34',
                    'comment' => ''
                ),
            'order_products' => Array
                (
                    'id' => 4,
                    'order_id' => 9,
                    'product_id' => 3,
                    'pieces' => 1
                ),
            'products' => Array
                (
                    'id' => 3,
                    'category_id' => 1,
                    'name' => 'programming by story C',
                    'writer' => 'Hasibul Hasan Shanto',
                    'created' => '2015-06-26 07:35:57'
                ),
            'psettings' => Array
                (
                    'id' => 3,
                    'category_id' => 1,
                    'product_id' => 3,
                    'img' => '3.jpg',
                    'desc' => '',
                    'created' => '2015-06-26 07:36:26',
                    'bppp' => 150,
                    'sppp' => 250,
                    'discount' => 10,
                    'service_charge' => 30
                ),
        ),
);
$new_array = array();

foreach($firstArray as $key=> $arr){
    if($key == 0){
        $new_array[0]['orders'] = $arr['orders'];
        $new_array[0]['order_products'][] = $arr['order_products'];
        $new_array[0]['products'][] = $arr['products'];
        $new_array[0]['psettings'][] = $arr['psettings'];
    }else{
         foreach($new_array as $key=> $newarr){
              if($arr['orders'] == $newarr['orders']){
                $new_array[$key]['order_products'][] = $arr['order_products'];
                $new_array[$key]['products'][] = $arr['products'];
                $new_array[$key]['psettings'][] = $arr['psettings'];
              }else{
                  $new_array[] = $arr;
              }
         }
    }

}
echo "<pre/>";print_r($new_array);
?>

输出:-https: //eval.in/388565

注意:-不用担心我放入的数组。 我只是将您的数组格式化为运行目的并在最后检查一下。 谢谢。

对于array_column()手动参考 ),这是一个相当简单的工作。 像这样( $array是您的来源):

$composite = [];
$composite['orders'] = array_column($array, 'orders')[0];
$composite['order_products'] = array_column($array, 'order_products');
$composite['products'] = array_column($array, 'products');
$composite['psettings'] = array_column($array, 'psettings');

print_r($composite);

这将导致以下数组:

Array
(
    [orders] => Array
        (
            [id] => 9
            [name] => Abdus Sattar Bhuiyan
            [email] => sattar.kuet@gmail.com
            [mobile] => 01673050495
            [alt_mobile] => 01818953250
            [city_id] => 2
            [location_id] => 5
            [status] => No contact
            [chashed] => NO
            [created] => 2015-06-27 12:49:34
            [modified] => 2015-06-27 12:49:34
            [comment] => 
        )

    [order_products] => Array
        (
            [0] => Array
                (
                    [id] => 2
                    [order_id] => 9
                    [product_id] => 1
                    [pieces] => 1
                )

            [1] => Array
                (
                    [id] => 3
                    [order_id] => 9
                    [product_id] => 2
                    [pieces] => 1
                )

            [2] => Array
                (
                    [id] => 4
                    [order_id] => 9
                    [product_id] => 3
                    [pieces] => 1
                )

        )

    [products] => Array
        (
            [0] => Array
                (
                    [id] => 1
                    [category_id] => 1
                    [name] => নভোযানের নাম সি প্রোগ্রামিং
                    [writer] => Engr. Abdus Sattar Bhuiyan
                    [created] => 2015-06-24 16:17:45
                )

            [1] => Array
                (
                    [id] => 2
                    [category_id] => 1
                    [name] => Resonance of creativity with C++
                    [writer] => Engr. Abdus Sattar Bhuiyan
                    [created] => 2015-06-26 07:32:52
                )

            [2] => Array
                (
                    [id] => 3
                    [category_id] => 1
                    [name] => programming by story C
                    [writer] => Hasibul Hasan Shanto
                    [created] => 2015-06-26 07:35:57
                )

        )

    [psettings] => Array
        (
            [0] => Array
                (
                    [id] => 1
                    [category_id] => 1
                    [product_id] => 1
                    [img] => 1.jpg
                    [desc] => description
                    [created] => 2015-06-28 00:28:26
                    [bppp] => 44000
                    [sppp] => 45000
                    [discount] => 25
                    [service_charge] => 30
                )

            [1] => Array
                (
                    [id] => 2
                    [category_id] => 1
                    [product_id] => 2
                    [img] => 2.jpg
                    [desc] => 
                    [created] => 2015-06-26 07:33:41
                    [bppp] => 150
                    [sppp] => 250
                    [discount] => 20
                    [service_charge] => 30
                )

            [2] => Array
                (
                    [id] => 3
                    [category_id] => 1
                    [product_id] => 3
                    [img] => 3.jpg
                    [desc] => 
                    [created] => 2015-06-26 07:36:26
                    [bppp] => 150
                    [sppp] => 250
                    [discount] => 10
                    [service_charge] => 30
                )

        )

)

如果需要将多个这样的数组聚合到一个包含所有数组的主数组中,则可以例如将其包装在一个简单的循环中,并为每个复合集添加一个数字索引:

$composite = [];

foreach($arrays as $num=>$array) {
    $composite[$num]['orders'] = array_column... // etc.
}

还要注意手册中提到的array_columnindex_key功能,如果要使用订单ID作为主键,可能会派上用场---为此,您必须重新array_column循环逻辑。 让我知道这是否是一个相关问题,我会补充更多; 或按原样足够。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM