【发布时间】:2013-09-26 06:28:40
【问题描述】:
所以我有两个数组 - $twitterData 和 $facebookData。
$twitterData 看起来像
[0] => Array
(
[text] => Hello World http://somelink
[type] => twitter
)
[1] => Array
(
[text] => We like to keep our developers happy!
[type] => twitter
)
$facebookData 看起来像
[0] => Array
(
[text] => We like to keep our developers happy! http://somelink.com
[type] => facebook
)
[1] => Array
(
[text] => Take a look
[type] => facebook
)
我正在尝试将这两个数组合并到一个名为 $socialFeed 的数组中。问题是我试图以这种方式合并它们,所以假设“文本”键的前 50 个字符对于任何两个数组项都相同,那么我将合并数组只让该项显示一次。因此,“我们想让我们的开发人员满意!http://somelink.com”会出现一次(而不是一个有链接,一个没有链接)。
我尝试过同时使用 array_diff 和 array_intersect,但它们都比较键的整个值,而不仅仅是文本键的前 X 个字符。
【问题讨论】:
-
您希望目标数组具有什么结构?你指出你的源数组
-
结果应该是什么?
-
你在你的问题中给出了答案。创建两个仅包含文本的前 X 个字符的派生数组,然后对它们进行比较。这些派生数组之间的差异路由与原始数组的差异路由相同
-
你必须自己动手。 PHP 的数组函数很方便,并且擅长它们的工作,但它们不是通用的玩具。如果您只想比较数组元素的子集,那么您将不得不提供自己的自定义工具。
-
@b_dubb:目标/结果数组应该与上面发布的数组具有相同的结构。唯一的区别是,如果一个项目同时存在于这两种类型中,则类型将是“两者”
标签: php arrays data-structures merge array-merge