帮助foreach循环

时间:2011-01-22 17:16:32

标签: php codeigniter foreach

在我的网站上,我试图将所有申请人显示给用户已发布的职位,基本上我也希望将其设置为同样的,

  

职位名称1   申请人姓名1
  申请人姓名2
  申请人姓名3

     

职位名称2   申请人姓名4   申请名称5

基本上我希望在他们申请的工作下收集应用程序,但是我目前得到的输出是,

  

职位名称1   申请名称1

     

职位名称1   申请人姓名2

我用来执行此foreach循环的代码如下

<?php foreach($applications as $a) : ?>
        <h3><?php echo $a['jobtitle']; ?></h3>
    <li>
        <img src="/media/uploads/candidates/<?php echo preg_replace('/(.gif|.jpg|.png)/', '_thumb$1', $a['profile_image']);?>" width="90" height="60"/>
        <p><?php echo $a['name']; ?></p>
    </li>
    <?php endforeach; ?>

3 个答案:

答案 0 :(得分:0)

嗯,你得到的是因为你只输出

$a['jobtitle']

$a['name']

其他名称存储在哪里?这样的东西可能是你想要的,虽然如果你复制/粘贴它就行不通,因为$ applications [x] ['name']似乎不是一个数组:

<?php foreach($applications as $a) : ?>
        <h3><?php echo $a['jobtitle']; ?></h3>
    <li>
        <img src="/media/uploads/candidates/<?php echo preg_replace('/(.gif|.jpg|.png)/', '_thumb$1', $a['profile_image']);?>" width="90" height="60"/>
        <?php foreach($a['name'] as $name)?>
        <p><?php echo $name; ?></p>
        <?php endforeach; ?>
    </li>
    <?php endforeach; ?>

答案 1 :(得分:0)

我们需要数据结构才能正确回答,但我假设你需要一个嵌套的foreach ......

<? foreach($jobs as $j): ?>

# list jobs

    <? foreach($applicants as $a): ?>
        <? if ($j['jobtitle'] == $a['jobtitle']): ?>

        # list applicants

        <? endif; ?>
    <? endforeach; ?>    

<? endforeach; ?>

答案 2 :(得分:0)

我建议从数据库中提取jobtitle和申请人,并将它们存储在多维数组中。

$jobs[$jobtitle][] = $applicant_name;

然后在视图中循环遍历此数组。为清晰起见,我省略了您的图片代码。

foreach($jobs as $title=>applicants){
    echo $title;
    foreach($applicants as $name){
        echo $name;
    }
}