安排从不同来源填充的多维数组

时间:2014-10-13 08:00:27

标签: php arrays sorting multidimensional-array

我正在填充来自不同来源的多维数组。

这是我的数组结构:

$feeds[$source][$indexLoop]["Link"] = $link;
$feeds[$source][$indexLoop]["User"] = $username;
$feeds[$source][$indexLoop]["Url"] = $url;
$feeds[$source][$indexLoop]["Time"] = $created_time;

现在,我在完成插入前一个源的所有条目后,从第一个源填充数组,然后从第二个源填充。等等,与其他来源......

我正在考虑一种按创建时间(最新到最旧)排列数组的方法,无论来源如何。什么是最好的方法呢?

编辑:我需要“源”索引,因为输出布局/设计取决于它来自哪个来源。在我的应用程序中还有一个部分,我只选择特定源的数组,例如$ feeds [of_source1],而不是[source_2]或任何来源。

2 个答案:

答案 0 :(得分:3)

如果你只从一个索引开始,而不是两个,如下所示:

$userData[$index] = array('Source' => $source,
                          'Link'   => $link, 
                          'User'   => $usernameUrl,
                          'Url'    => $url,
                          'Time'   => $created_time);
$index++;

使用它来读取Feed,然后你只需要处理一个索引。之后你需要对它进行排序。这在PHP中很简单:

function _compare($data1,$date2)
{
  if ($data1['Time'] == $data2['Time']) return 0;
  return ($data1['Time'] < $data2['Time']) ? -1 : 1;
}

usort($userData,'_compare');

这是用户定义的排序:http://www.php.net/manual/en/function.usort.php

答案 1 :(得分:0)

foreach($sources as $key => $source){
  $feeds[$source['date']][$key]['Link'] = $source['link'];
  (...)
}

如何查看$ source的结构?