I have a problem on displaying a row once inside a looped rows using PHP. Here is the exact code that I have:
Figure 1 `
if (sizeof($items) > 0) { foreach ($items as $item) { //customisation starts - jm 10:54 AM 20/11/2018 //if block for material type $this->data->currentItem = $item; if ($item->getType() == 0) { $this->getRow($this->style->itemList['rows']['materialSubHeader'], false, 'currentHeader', $withHeader); $this->getRow($this->style->itemList['rows']['matContent'], false, 'currentHeader', $withHeader); } if ($item->getType() == 1) { $this->getRow($this->style->itemList['rows']['lbrContent'], false, 'currentHeader', $withHeader); } $withHeader = false; $this->currentHeader = $otherHeader; //customisation ends - jm 10:54 AM 20/11/2018 } } }
`
This line have a row containing a label “Material”
from this photo
This Materials should not repeat on the looped contents.
On this code below based on figure 1 above this post This code is responsible for displaying the label Material that is looped
$this->getRow($this->style->itemList['rows']['materialSubHeader'], false, 'currentHeader', $withHeader);
On this code below based on figure 1 This code is responsible for displaying the content
$this->getRow($this->style->itemList['rows']['matContent'], false, 'currentHeader', $withHeader);
How can I stop the iteration of the first row.
Thanks in advance
Advertisement
Answer
Here’s my solution. First, add key to your foreach loop:
foreach ($items as $key=>$item) {
Then, execute the code that display the Material label if only the key is 0:
if($key == 0) $this->getRow($this->style->itemList['rows']['materialSubHeader'], false, 'currentHeader', $withHeader);