【发布时间】:2011-09-29 04:01:34
【问题描述】:
您好,我有一个数组,通过uksort() 传递后看起来像这样
Array
(
[3] => Array
(
[job_id] => 4
[job_title] => Supercar Test Driver
[company_name] => McLaren
[logo_small] => small_mclaren001.png
[logo_large] => large_mclaren002.png
[employer_id] => 3
)
[2] => Array
(
[job_id] => 3
[job_title] => Recruitment Consultant - Driving
[company_name] => MoovJob.com
[logo_small] => small_rac001.png
[logo_large] => large_rac002.png
[employer_id] => 2
)
[1] => Array
(
[job_id] => 5
[job_title] => Postal Worker / Post Person
[company_name] => Royal Mail
[logo_small] => small_royalmail001.png
[logo_large] => large_royalmail002.png
[employer_id] => 4
)
[0] => Array
(
[job_id] => 6
[job_title] => Another Job
[company_name] => MoovJob.com
[logo_small] => small_rac001.png
[logo_large] => large_rac002.png
[employer_id] => 2
)
)
但是,如果在返回此数组的 SQL 中添加 GROUP BY company_name 数组中的最终条目消失,我想要实现的是将职位放在公司名称下,但只显示公司名称一次,类似的东西,
公司名称 1
职称 1 职称 2 职称 3公司名称 2
职位名称 4公司名称
职称 5 职称 6
我正在尝试通过在我看来执行以下操作来实现这一点,但是我只能显示一个空缺,我做错了什么?
<?php $oldemp = "";?>
<?php foreach($jobs as $key => $value) : ?>
<?php if ($oldemp != $value['company_name']) : ?>
<?php $oldemp = $value['company_name']; ?>
<section class="employer">
<div class="job_holder">
<img src="<?php echo base_url(); ?>media/uploads/users/<?php echo $value['logo_large']; ?>" width="198" height="148" alt="<?php echo $value['company_name']; ?>"/>
<dl>
<dt><?php echo count($key); ?></dt>
<dd>Matches</dd>
</dl>
<?php endif;?>
<span> + <a href="/jobwall/getjob/<?php echo $value['job_id']; ?>"><?php echo $value['job_title']; ?></a></span>
</div>
</section>
<?php endforeach; ?>
function jobcmp($job1, $job2)
{
return strcmp($job1['company_name'], $job2['company_name']);
}
【问题讨论】:
-
这是一个很长的问题,有很多细节。这意味着任何人都需要付出很多努力才能理解核心问题,更不用说你的问题的细节了。如果您可以在更简单的情况下重新创建问题,然后要求我们解决简单的情况,这样我们就不必了解您的阵列的所有信息,这对我们和您都有帮助。
-
你在
uksort中使用了什么函数? -
@glass 机器人请看我编辑的代码。
标签: php mysql arrays codeigniter foreach