php实现数组有规则排序筛选
来源:互联网 发布:ios同步请求数据 编辑:程序博客网 时间:2024/06/02 05:31
今天给我个需求 要求我做出下面的效果(前后端都需要做),symfony+twig+scss
由于使用api调数据时候api有问题,临时只能使用假数据了
$list_rep = array();$existing_letter = array();
$first_letter = '';
// fake data
$first_letter = strtoupper(substr('A saadxzcas', 0, 1));
$list_rep[$first_letter][$i]['id'] = ‘1’
$list_rep[$first_letter][$i]['name'] = ‘wewqewq’;
$list_rep[$first_letter][$i]['companyName'] = 'A saadxzcas';
$list_rep[$first_letter][$i]['postion'] = 'php';
$list_rep[$first_letter][$i]['emailAddress'] = '213w@qwd.com';
$list_rep[$first_letter][$i]['phoneNumber'] = '333333333333';
$existing_letter[] = $first_letter;
$first_letter = strtoupper(substr('altima', 0, 1));
$list_rep[$first_letter][2]['id'] = '2';
$list_rep[$first_letter][2]['name'] = 'weimin li';
$list_rep[$first_letter][2]['companyName'] = 'altima';
$list_rep[$first_letter][2]['postion'] = 'asdd';
$list_rep[$first_letter][2]['emailAddress'] = 'ttt@altima-agency.cn';
$list_rep[$first_letter][2]['phoneNumber'] = '11111111111';
$existing_letter[] = $first_letter;
$first_letter = strtoupper(substr('Bltima', 0, 1));
$list_rep[$first_letter][3]['id'] = '3';
$list_rep[$first_letter][3]['name'] = 'asda li';
$list_rep[$first_letter][3]['companyName'] = 'Bltima';
$list_rep[$first_letter][3]['postion'] = 'adscxew';
$list_rep[$first_letter][3]['emailAddress'] = 'test@altima-agency.cn';
$list_rep[$first_letter][3]['phoneNumber'] = '11111111111';
$existing_letter[] = $first_letter;
$first_letter = strtoupper(substr('Jltima', 0, 1));
$list_rep[$first_letter][4]['id'] = '4';
$list_rep[$first_letter][4]['name'] = 'sds li==';
$list_rep[$first_letter][4]['companyName'] = 'Jltima';
$list_rep[$first_letter][4]['postion'] = 'sdaw';
$list_rep[$first_letter][4]['emailAddress'] = 'toto@altima-agency.cn';
$list_rep[$first_letter][4]['phoneNumber'] = '11111111111';
$existing_letter[] = $first_letter;
//fake data end
$full_letters = range('A', 'Z');
$exist_letters = range('A', 'Z');
if(in_array($letter, $existing_letter)){
$list_rep[$letter]['total'] = count($list_rep[$letter]);
$half = $list_rep[$letter]['total']/2;
$list_rep[$letter]['half'] = is_float($half) ? ceil($half) : '2';
} else {
unset($exist_letters[$key]);
}
}
ksort($list_rep);
// var_dump($list_rep);exit();
twig:
{% for key_letter, industry in final_list_companies %}
<div id="letter_{{key_letter}}" name="letter_{{key_letter}}" class="space-between-letter" ></div>
<div id="select_letter" class="letter-selection">
<p class="letter">{{key_letter}}</p>
{% set array_length = industry|length %}
{% set array_length_half = (industry|length / 2)|round %}
{% if array_length > 1 %}
<div class="row">
{% if is_mobile() %}
<div class="col-xs-12">
<ul class="membership-directory-industries membership-directory-industries-left">
{% for value in industry %}
<li class="membership_directory_industries_parents" name="{{value.first_letter_code|capitalize}}">
<a href="{{ path('membership_directory_company_additional_show', {'company': value.id}) }}">{{ value.name }}</a>
</li>
{% endfor %}
</ul>
</div>
{% else %}
<div class="col-xs-{{ is_mobile() ? '12' : '5' }}">
<ul class="membership-directory-industries membership-directory-industries-left">
{% for value in industry|slice(0, array_length_half) %}
<li class="membership_directory_industries_parents" name="{{value.first_letter_code|capitalize}}">
<a href="{{ path('membership_directory_company_additional_show', {'company': value.id}) }}">{{ value.name }}</a>
</li>
{% endfor %}
</ul>
</div>
<div class="col-xs-{{ is_mobile() ? '12' : '6' }}">
<ul class="membership-directory-industries membership-directory-industries-right">
{% for value in industry|slice(array_length_half, array_length-array_length_half) %}
<li class="membership_directory_industries_parents" name="{{value.first_letter_code|capitalize}}">
<a href="{{ path('membership_directory_company_additional_show', {'company': value.id}) }}">{{ value.name }}</a>
</li>
{% endfor %}
</ul>
</div>
{% endif %}
</div>
{% else %}
<div class="row">
<div class="col-xs-{{ is_mobile() ? '12' : '6' }}">
<ul class="membership-directory-industries membership-directory-industries-left">
{% for value in industry|slice(0, 1) %}
<li class="membership_directory_industries_parents" name="{{value.first_letter_code|capitalize}}">
<a href="{{ path('membership_directory_company_additional_show', {'company': value.id}) }}">{{ value.name }}</a>
</li>
{% endfor %}
</ul>
</div>
</div>
{% endif %}
</div>
{% endfor %}
效果图
- php实现数组有规则排序筛选
- 《PHP---使用回调函数实现数组的筛选》
- php二维数组排序实现
- hdu4267(树状数组,有规则区间修改)
- array_multisort实现PHP多维数组排序
- 【收藏】php实现二维数组排序
- php对数组排序实现代码
- PHP array_multisort实现二维数组排序
- php筛选最大最小部分的数组
- 筛选排序
- array_multisort实现PHP多维数组排序示例讲解
- 四种常见的数组排序方法(php实现)
- php实现堆,将数组进行堆排序
- php二维数组多字段排序实现mysql order功能
- PHP二维数组order by排序的实现
- PHP实现二维数组按某列进行排序的方法
- php比较多维数组中值的大小排序实现代码
- PHP对二维数组进行双条件排序的实现
- Elasticsearch聚合 之 Date Histogram聚合
- Hadoop基本使用(二)HelloWorld之旅
- Mac 终端命令大全
- 在Ubuntu14.04上安装配置Matlab 2015b破解版(含安装包)
- Java之JUnit4的学习
- php实现数组有规则排序筛选
- Spring事务管理(详解+实例)
- 关于Metasploit的学习笔记(二)
- [bzoj3492]Binary Dodgeball
- java基础复习之网络编程了解篇 十四 -1
- ZigBee广播通信原理及ZigBee网络的一些特性
- codeforce Anton and Classes
- IT教程视频合集 编程教程视频合集 8000G分享
- 判断一棵树为另一颗树的子树