合并数组中的相似 URL
Merge similar URLs in array
我有一个数组,其中包含来自 Google Analytics 的 URL 观看次数。我想合并相似地址的显示
比如我有这样一个数组:
array(
array(
'/news/259670-lorem-ipsum/',
'20715'
),
array(
'example.com/news/259670-lorem-ipsum/',
'451'
),
array(
'example.com/news/259670-lorem-ipsum/?amp_lite=',
'5'
),
array(
'/news/259670-lorem-ipsum/amp/',
'54'
),
array(
'/reviews/259671-dolor-amp-sit-amet/',
'10732'
),
array(
'example.com/reviews/259671-dolor-amp-sit-amet/?fbclid=1234567890',
'41'
),
array(
'/reviews/259671-dolor-amp-sit-amet/amp/?fbclid=1234567890',
'2'
),
);
最终结果应该是这样的:
array(
'/news/259670-lorem-ipsum/' => 21225,
'/reviews/259671-dolor-amp-sit-amet/' => 10775
)
如何使用 PHP 完成?
好的,我解决了问题:
$res = array();
foreach($pages as $page){
// Remove domain
$url = preg_replace('/\/?(example\.com)/i', '', $page[0]);
// Remove query string
$url = preg_replace('/(\/[^?]+).*/i', '', $url);
// Remove AMP
$url = preg_replace('/\/amp\/\z|\/amp$/i', '/', $url);
if(array_key_exists($url, $res)){
$res[$url] += $page[1];
} else{
$res[$url] = $page[1];
}
}
var_dump($res);
我有一个数组,其中包含来自 Google Analytics 的 URL 观看次数。我想合并相似地址的显示
比如我有这样一个数组:
array(
array(
'/news/259670-lorem-ipsum/',
'20715'
),
array(
'example.com/news/259670-lorem-ipsum/',
'451'
),
array(
'example.com/news/259670-lorem-ipsum/?amp_lite=',
'5'
),
array(
'/news/259670-lorem-ipsum/amp/',
'54'
),
array(
'/reviews/259671-dolor-amp-sit-amet/',
'10732'
),
array(
'example.com/reviews/259671-dolor-amp-sit-amet/?fbclid=1234567890',
'41'
),
array(
'/reviews/259671-dolor-amp-sit-amet/amp/?fbclid=1234567890',
'2'
),
);
最终结果应该是这样的:
array(
'/news/259670-lorem-ipsum/' => 21225,
'/reviews/259671-dolor-amp-sit-amet/' => 10775
)
如何使用 PHP 完成?
好的,我解决了问题:
$res = array();
foreach($pages as $page){
// Remove domain
$url = preg_replace('/\/?(example\.com)/i', '', $page[0]);
// Remove query string
$url = preg_replace('/(\/[^?]+).*/i', '', $url);
// Remove AMP
$url = preg_replace('/\/amp\/\z|\/amp$/i', '/', $url);
if(array_key_exists($url, $res)){
$res[$url] += $page[1];
} else{
$res[$url] = $page[1];
}
}
var_dump($res);