Php 如何组合这些数组并使用ID创建自己的数组?
我对数据库进行了查询,并将其打印出来。如您所见,可以将Php 如何组合这些数组并使用ID创建自己的数组?,php,arrays,Php,Arrays,我对数据库进行了查询,并将其打印出来。如您所见,可以将页面\u id=>2组成一个数组 Array ( [page_id] => 3 [name] => Add Me [article_category] => Celebrities [count_article_category] => 1 [average_ctr] => 5.555560111999512 ) Array ( [page_id] => 2
页面\u id=>2
组成一个数组
Array
(
[page_id] => 3
[name] => Add Me
[article_category] => Celebrities
[count_article_category] => 1
[average_ctr] => 5.555560111999512
)
Array
(
[page_id] => 2
[name] => I Too Had a Love Story
[article_category] => Celebrities
[count_article_category] => 7
[average_ctr] => 2.525434238570077
)
Array
(
[page_id] => 2
[name] => I Too Had a Love Story
[article_category] => Desi
[count_article_category] => 1
[average_ctr] => 2.892319917678833
)
Array
(
[page_id] => 2
[name] => I Too Had a Love Story
[article_category] => Lifestyle
[count_article_category] => 1
[average_ctr] => 2.3632400035858154
)
Array
(
[page_id] => 2
[name] => I Too Had a Love Story
[article_category] => Sports
[count_article_category] => 1
[average_ctr] => 2.150439977645874
)
Array
(
[page_id] => 1
[name] => Indian Celebrities
[article_category] => Celebrities
[count_article_category] => 2
[average_ctr] => 2.7356200218200684
)
Array
(
[page_id] => 1
[name] => Indian Celebrities
[article_category] => Hilarious
[count_article_category] => 1
[average_ctr] => 0.7684919834136963
)
我希望数组看起来像这样
[2]
(
[Celebrities] => 7
[Lifestyle] => 1
[Desi] => 1
)
我尝试了在foreach循环中运行的以下代码。我知道我的逻辑或编码是错误的,但我无法理解我的错误。请帮忙
if (isset($data['page_id']))
{
if (array_key_exists($data['page_id'], $pages_data))
{
echo "<pre>";
var_dump($pages_data);
$pages_data[$data['page_id']] += array(
$data['article_category'] => $data['count_article_category'],
);
} else {
// $pages_data[$data['article_category']] = $data['average_ctr'];
// $pages_dat a[$data['page_id']] = $data['page_id'];
$pages_data[$data['page_id']] = array(
$data['article_category'] => $data['count_article_category'],
);
}
echo "<pre>";
print_r($pages_data);
}
if(isset($data['page_id']))
{
如果(数组键存在($data['page\u id',$pages\u data))
{
回声“;
变量转储($pages\u data);
$pages\u data[$data['pages\u id']]+=array(
$data['article\u category']=>$data['count\u article\u category'],
);
}否则{
//$pages_data[$data['article_category']]=$data['average_ctr'];
//$pages_dat a[$data['page_id']]=$data['page_id'];
$pages\u data[$data['pages\u id']]=数组(
$data['article\u category']=>$data['count\u article\u category'],
);
}
回声“;
打印($pages\u data);
}
好的,我们开始:
好了,我们开始:
也许有了
array\u combine
目前为止做得很好,可以收集您的努力,组织您尝试过的内容和出现的问题。你的努力使我们更容易提供帮助。也许您还可以包括代码运行时的结果/输出(底部的代码是您尝试解决问题的代码)。也许使用array\u combine
到目前为止做得很好,可以收集您的努力并组织您尝试过的内容和出现的问题。你的努力使我们更容易提供帮助。也许您还可以包括代码运行时的结果/输出(底部的代码是您尝试解决问题的代码)。
$pages_data = array();
foreach ($datas as $data) {
if (isset($data['page_id'])) {
// create new element for $pages_data[$data['page_id']] if it does not exists
if (!isset($pages_data[$data['page_id']])) {
$pages_data[$data['page_id']] = array();
}
// if it exists - just add certain values:
$pages_data[$data['page_id']][$data['article_category']] = $data['count_article_category'];
}
}