按列对平面文件中的数据进行排序

时间:2016-03-01 01:39:09

标签: php arrays sorting netcat

我以下列方式将数据存储在平面文件中:

1|Shoes|50|5|Classy,basic
3|Shirt|25|4|Simple
2|Tshirt|20|1|Basic, urban
4|Coat|45|3|Classy, preppy

现实中看起来像这样:

$cat_file = "data.php";
$cat_db = file("$cat_file");
$call = fopen("$cat_file","r");
foreach($cat_db as $cat_line) {
$cat_line_arr = explode("|",$cat_line);
$cat_line_id = $cat_line_arr[1];
    if($cat_line_id == $cat) {

       $id = $cat_line_arr[0];
       $item = $cat_line_arr[1];
       $price = $cat_line_arr[2];
       $quality = $cat_line_arr[3];
       $keywords = $cat_line_arr[4];

        if (BLABLABLACONDITION) {

        *LISTS THE DATA SORTED THE WAY I WANT*

        }
    }
}
fclose($call);

我尝试按照我选择的某个列对数据进行排序,让我们通过 price 说出来。这是由ajax函数调用的文件,它列出了数据:

1|Shoes|50|5|Classy,basic
4|Coat|45|3|Classy, preppy
3|Shirt|25|4|Simple
2|Tshirt|20|1|Basic, urban

我上面的代码工作正常,但没有特定的排序,它只是从文件中按原始顺序列出数据。 如果按 price 降序排序,我想得到的结果如下:

def returnNotMatches(a, b):
    return [[x for x in a if x not in b], [x for x in b if x not in a]]

我应该替换列出数据按我想要的方式对数据进行排序?在此先感谢您的帮助

2 个答案:

答案 0 :(得分:1)

$('#carousel-example-generic').on('slide.bs.carousel', function() {
  if ($('.carousel-inner .item:last').hasClass('active')) {
    $('.carousel-inner .item:first').addClass('animated zoomInDown');
  } else {
    $('.item.active').next().addClass('animated zoomInDown');
  }
  $('.item.active').addClass('animated zoomOutDown');
});

$('#carousel-example-generic').on('slid.bs.carousel', function() {
  $('.item').removeClass('animated zoomInDown zoomOutDown')
});

$('.left').click(function () {
  if ($('.carousel-inner .item:first').hasClass('active')) {
    $('.carousel-inner .item:last').addClass('animated zoomInDown');
  } else {
    $('.item.active').prev().addClass('animated zoomInDown');
  }
});

$('.carousel-indicators > li').click(function () {
  $('.item').addClass('animated zoomInDown');
});

答案 1 :(得分:0)

不确定我完全理解你的问题,所以在这里猜测,你在寻找krsort()和ksort()吗?

$cat_line_id = $cat_line_arr[0];
$cat_line_item = $cat_line_arr[1];
$cat_line_price = $cat_line_arr[2];

等...

ksort($cat_line_price);

根据价格按升序排列数组

krsort($cat_line_price);

根据降价顺序重新排列数组