繁体   English   中英

在多维数组php中合并键值

[英]Merge key values in a multidimensional array php

我想将基于author_id重复数组值合并为一个。 我的代码如下:

 public function full_array( $date_query, $minimum ) {          
    $data = $this->date_array_freqency( $date_query, $minimum );
    $products = array();

    foreach( $data as $id => $sales ) {
        $products[] = array (
            'author_id'     => get_post_field( 'post_author', $id ),
            'product_id'    => $id,
            'sales'         => $sales                   
          );
    }           
}

多维数组如下所示:

Array
(
    ....

    [4] => Array
        (
            [author_id] => 27
            [product_id] => 166
            [sales] => 6
        )

    [5] => Array
        (
            [author_id] => 25
            [product_id] => 1056
            [sales] => 6
        )

    [6] => Array
        (
            [author_id] => 27
            [product_id] => 331
            [sales] => 6
        )

)

当存在相同的作者ID时,我想将数组组合成如下形式:

[4] => Array
        (
            [author_id] => 27
            [product_id] => array( 166, 331)
            [sales] => array(6, 6)
        )

任何指导是非常感谢。

您可以更改full_array函数中的for-loop来执行以下操作:

foreach( $data as $id => $sales ) {
    $aId = get_post_field( 'post_author', $id );
    if (isset($products[$aId])) { // if the author already in the result just add the data
        $products[$aId]["product_id"][] = $id;
        $products[$aId]["sales"][] = $sales;

    } else { // if not exist add new data 
        $products[$aId] = array('author_id' => $aId, 'product_id' => [$id], 'sales' => [$sales]);
    }
}

如果您不希望结果数组中的键(作者ID),请使用数组值

暂无
暂无

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

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