使用PHP对从CSV数据构建的多维数组进行排序

时间:2010-12-07 18:37:20

标签: php arrays sorting csv multidimensional-array

尝试在PHP中对从CSV填充的数组进行排序。理想情况下,我也希望能够通过点击tabs in the table here来控制排序。但是现在,我手头的第一个任务就是整理那该死的东西..已经在这3天了现在..任何帮助都非常感谢!!干杯!

PHP

<?php 

$fp = fopen("https://spreadsheets.google.com/pub?key=0AjZgwY03sLMGdHVoWjhucGowWWJBb2g2NnQzVG9HZFE&hl=en&single=true&gid=0&output=csv","r"); 
$rows = array(); 
while (($row = fgetcsv($fp)) !== FALSE) { 
    $rows[] = $row; 
}
fclose($fp); 

$headers = array_shift($rows);
foreach ($rows as $row) : list($ShowKey, $ShowFeedURL, $ShowLink, $ShowIcon, $ShowTitle, $ShowTag, $ShowCategory, $ShowEps, $ShowLastUpdate, $ShowNew) = $row;

$oddpost = ( empty( $oddpost ) ) ? '_odd' : ''; ?>

4 个答案:

答案 0 :(得分:1)

我最近这样做了。我有一个来自数据库的多维记录数组,我需要根据数组中的一个特定列对它们进行排序。这是我做的:

foreach($TimeRecords as $key => $value)
{
   $Rates[$key] = $value['rate'];
}
array_multisort($Rates, SORT_ASC, $TimeRecords);

我构建了一个只有我需要的列的数组,然后我使用array_multisort()函数根据该列对数组进行排序。

您可以编写将在PHP中执行此操作的函数,然后使用javascript ajax调用来调用它们,并在完成排序时重新加载该部分页面。

答案 1 :(得分:0)

您可能会发现usort()功能很有用。它接受回调参数,可用于按特定字段进行排序。

答案 2 :(得分:0)

您可以考虑在Javascript中使用客户端进行排序,而不是在PHP中对表进行排序。例如,看一下这个jQuery插件:http://tablesorter.com/

答案 3 :(得分:0)

今天我遇到了类似的问题。基本上我最终做的是创建一个临时表,我从我需要的csv文件中加载行。从那里,我使用PHP来排序和组织数据,并更新或添加到我需要更改的表。

示例,我创建了一个名为'temp'的表,并加载到我需要的类别的所有行中。然后,一旦这个在表中,我制作了一个php脚本,按照降序排列总销售数量的信息。从那里,我做了一个查询来更新我的主表并使用限制来控制它(仅按销售数量排名前200项)。

这很容易做到,希望它会帮助你或其他人。

请记住。如果您要多次执行此操作,则需要截断临时表以首先删除旧行。