我想将基于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)
)
非常感谢任何指导。
答案 0 :(得分:3)
您可以在for-loop
函数中更改full_array
来执行以下操作:
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),请使用array-values