[英]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.