gpt4 book ai didi

php - 强制一个数组至少有一个项目,每个项目都有一个特定的值

转载 作者:可可西里 更新时间:2023-10-31 23:34:01 25 4
gpt4 key购买 nike

我一直在制作一个组合的社交媒体提要类,它从 Facebook 和博主那里获取帖子,从 Twitter 获取推文。然后它将它们组合成一个列表以显示在网站上。问题是很少看到这两种帖子类型,因为 Twitter 比其他两种帖子活跃得多。

我设法让它始终至少显示每种类型中的一种,但是我是通过计算最终数组中每种类型的数量然后将它们拼接到末尾来实现的,如果没有的话我想知道是否有更优雅的解决方案?

我的数组包含一堆数组,每个数组都有一个“类型”值,这是我需要测试的/每个数组至少有一个。

拼接前:

Array
(
[0] => Array
(
[id] => 131403235838803968
[from] => foo
[sent] => 1320163947
[type] => tweet
[html] => bar
)

[1] => Array
(
[id] => 131403233250914304
[from] => foo
[sent] => 1320163946
[type] => tweet
[html] => bar
)

[2] => Array
(
[id] => 131403232835674113
[from] => foo
[sent] => 1320163946
[type] => tweet
[html] => bar
)

[3] => Array
(
[id] => 131403230910480384
[from] => foo
[sent] => 1320163946
[type] => tweet
[html] => bar
)

[4] => Array
(
[id] => 131403228834299904
[from] => foo
[sent] => 1320163945
[type] => tweet
[html] => bar
)

[5] => Array
(
[type] => facebook
[from] => foo
[html] => bar
[sent] => 1320065996
)

[6] => Array
(
[type] => facebook
[from] => foo
[html] => bar
[sent] => 1319808945
)

[7] => Array
(
[type] => facebook
[from] => foo
[html] => bar
[sent] => 1319789640
)

[8] => Array
(
[type] => facebook
[from] => foo
[html] => bar
[sent] => 1319707799
)

[9] => Array
(
[type] => facebook
[from] => foo
[html] => bar
[sent] => 1319617295
)

[10] => Array
(
[type] => blogger
[from] => foo
[html] => bar
[sent] => 1320157500
)

[11] => Array
(
[type] => blogger
[from] => foo
[html] => bar
[sent] => 1320148260
)

)

之后它只会有 5 个最新的。但是我希望它有五个最新的,但要确保它在最终数组中至少有一个类型为“blogger”和一个类型为“facebook”。

使用 Johnny Craig 的想法和以下代码实现了它:

$output = array();  
$output[] = $tweets[0];
$output[] = $items[0];
$output[] = $posts[0];
$feed = array_merge($tweets, $items, $posts);
$i = 0;
while ($limit > count($output)) {
if (!in_array($feed[$i], $output)) {
$output[] = $feed[$i];
}
$i++;
}

但我不确定我是否喜欢它

最佳答案

你可以这样做:

  • 获取前 5 个条目
  • 检查他们是否只是推特
  • 如果是,首先从 type = facebook 或 blogger 的数组中拉取

问题是:什么更快?拆分数组或遍历一个数组以查找类型。

编辑:另一种方法是计算你的推特帖子,所以当遍历数组时,你有例如$twitter = 3 然后你将匹配参数更改为 != twitter

关于php - 强制一个数组至少有一个项目,每个项目都有一个特定的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7969288/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com