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

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

我遇到这种情况是因为我有两个关联数组要传递给视图

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

然后下一个 foreach 获取第二个 table 的详细信息

数组是以这种方式创建的,与 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
                    )

            )

    )

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

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

然后在视图的另一部分中,我想 foreach 另一个关联数组 'ticketDept' 以将其放入列表中

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

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

我也乐于接受更好的方法来实现我的需求,最初是将两个不同的数组传递给视图,所以如果您认为可以用不同的方式解决这个问题..谢谢您的任何建议

谢谢指点

为了清楚起见,这是控制器中的调用

    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; ?>

但是我会在控制器中更明确一点,并做一些类似的事情:

$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 中,我有两个 associative 数组,由两种不同的 Models[=24= 的两种方法返回]

正如问题中所写,两个数组链接在结果数组 $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”View 中,这两个数组可以通过这种方式单独访问

<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() ?>