繁体   English   中英

PHP 二维关联数组的两个不同的关联 arrays 如何 foreach 只是其中之一

[英]PHP bidimensional associative array of two different associative arrays how to foreach just one of the two

我处于这种情况是因为我有两个关联的 arrays 要传递给视图

然后在视图中我必须为第一个数组 foreach 并获取一个列表

和 next foreach 第二个并获得详细信息表

数组是以这种方式创建的,这与 array_merge 和其他 array_* 函数略有不同

我只是像这样在我的代码中重复了两次分配

    $newArray = $ticketResult;
    $newArray = $deptResult;

它可以工作并且 print_r($newArray); 显示了这一点(在片段之后):

    Array
    (
        [ticketResult] => Array
            (
                [0] => Array
                    (
                        [id] => 3943
                        [t_name] => customerOne
                        [date] => 1508236987
                        [d_name] => In progress
                    )

                [1] => Array
                    (
                        [id] => 4139
                        [t_name] => AnotherName
                        [date] => 1522134694
                        [d_name] => In progress
                    )

                [2] => Array
                    (
                        [id] => 4367
                        [t_name] => HisName
                        [date] => 1535118892
                        [d_name] => On hold
                    )

                [3] => Array
                    (
                        [id] => 4395
                        [t_name] => Hername
                        [date] => 1536914668
                        [d_name] => Shipping
                    )

            )

        [deptResult] => Array
            (
                [0] => Array
                    (
                        [id] => 0
                        [name] => Arrived
                    )

                [1] => Array
                    (
                        [id] => 1
                        [name] => In progress
                    )

                [2] => Array
                    (
                        [id] => 2
                        [name] => On hold
                    )

                [3] => Array
                    (
                        [id] => 4
                        [name] => Closed
                    )

            )

    )

如您所见,两个完全不同的关联 arrays 一个接一个地链接到新的关联数组 $newArray 中,在下一步我传递给视图(codeigniter)

现在在视图中,我想在 html 表中为一个目的 foreach 第一个“ticketResult”,就好像它是一个“单个”关联数组

然后在视图的另一部分中,我想将另一个关联数组“ticketDept”放在一个列表中

我想知道它应该如何完成我想做的事情......

应该如何使用这种由两个完全不同的关联 arrays 组成的二维关联数组

我也愿意接受更好的方法来满足我的需求,最初是将两个不同的 arrays 传递给视图,所以如果你认为这个问题可以用不同的方式解决......谢谢你的任何建议

谢谢你的提示

为了清楚起见,这是 controller 中的调用

    return view("Ticketpage/showtickets", ['dataarrays' => $newArray]); 
// Controller
$data = $ticketResult;
$data = $deptResult;

// view use the first array
<?php foreach($ticketResult as $result): ?>
  
 // Your code here

<?php endforeach; ?>




// view use the second array
<?php foreach($deptResult as $result): ?>
 
// Your code here

<?php endforeach; ?>

但是,我会在 controller 中更明确一点,并执行以下操作:

$data['ticketResult'] = $ticketResult['ticketResult'];
$data['deptResult'] = $deptResult['deptResult'];

// Then load the view
return view('foo/bar', $data);

现在假设您想在无序列表中显示该票证结果的所有名称。 在您看来,您会这样做:

 <ul>
 <?php foreach($deptResult as $result): ?>
    <li><?php echo $result['t_name'] ?></li>
 <?php endforeach; ?>
 </ul>

在 Marco 的双重暗示下,我终于找到了要应用的正确技术

Controller我有两个关联的 arrays 由两个不同模型的两种方法返回

如问题中所述,两个 arrays 链接在结果数组 $data 中

public function showTickets($id)
{

    $ticketModel = new TicketModel();
    $deptModel = new DeptModel();

    $ticketRecords = $ticketModel->getTicketsByDept($id);
    $deptRecords = $deptModel->getAvailableDepts();

    $data['ticketResult'] = $ticketRecords;
    $data['deptResult'] = $deptRecords;

    return view("Chart/showtickets", $data);

}

在“showtickets”视图中,这两个数组可以通过这种方式单独访问

<h1>Chart</h1>

<p>

    <?php foreach ($deptRecord as $dKey): ?>

      <?= $dKey['id'] ?> , <?= $dKey['name'] ?> <br>

    <?php endforeach; ?>

</p>


<table style="width:100%">
  <tr>
    <th>Ticket ID</th>
    <th>Cliente</th>
    <th>Data Creazione</th>
    <th>Dipartimento</th>
  </tr>

  <?php foreach ($ticketRecords as $tKey): ?>

        <tr>
            <td><?= $tKey['id'] ?></td>
            <td><?= $tKey['t_name'] ?></td>
            <td><?= date("d-m-Y", $tKey['date']) ?></td>
            <td><?= $tKey['d_name'] ?></td>
        </tr>
        
    <?php endforeach; ?>
</table> 


<?= $this->endSection() ?>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM