在 cakephp / fpdf 中排序

sort in cakephp / fpdf

我在 CakePHP 中创建了一个小脚本,我可以在其中生成引号,但是引号项在我的 PDF 中似乎以非特定方式排序。按 ID 升序排序的最佳方法是什么?

在下面找到我的相关代码片段,它将列出我报价中的所有项目:

    foreach ($items as $item) {
        $itemSubTotal = $item['quantity'] * $item['unit_price'];
        $discount_rate=$item['discount_rate'];
        $unit_price=$item['unit_price'];
        $subTotal += $itemSubTotal;
        $itemDiscount=$itemSubTotal*$discount_rate/100;
        $discount+=$itemDiscount;
        //$itemTax = $itemSubTotal * ($item['tax_rate'] / 100);
        $itemTax = ($itemSubTotal - $itemDiscount) * ($item['tax_rate'] / 100);
        $tax += $itemTax;
        $itemSubTotal = $itemSubTotal*((100-$discount_rate) / 100);
        $itemSubTotal = number_format($itemSubTotal, 2, '.', ',');
        $y+=5;
        $pdf->setXY(5, $y);
        $pdf->MultiCell(10, 5, $i++, 0, 'L');
        $pdf->setXY(15, $y);
        //$pdf->MultiCell(30, 5, $item['title'], 0, 'L');
        $pdf->Cell(30, 5, $item['title'], 0, 2, 'L');
        $pdf->setXY(45, $y);
        //$pdf->MultiCell(80, 5, $item['details'], 0, 'L');
        $pdf->Cell(30, 5, $item['details'], 0, 2, 'L');
        $pdf->setXY(125, $y);
        $pdf->MultiCell(20, 5, $item['quantity'], 0, 'R');
        $pdf->setXY(145, $y);
        $pdf->MultiCell(15, 5, number_format($unit_price, 2, '.', ','), 0, 'R');
        $pdf->setXY(160, $y);
        $pdf->MultiCell(20, 5, number_format($discount_rate, 2, '.', ','), 0, 'R');
        $pdf->setXY(180, $y);
        $pdf->MultiCell(25, 5, $itemSubTotal, 0, 'R');
    }

非常感谢专家的帮助,谢谢

我还没有尝试过,但应该可以。看看 cake 3 collections,特别是 sortBy

如果您将 $items 包装在一个集合中,然后对它们进行排序,然后遍历它们,您将实现您的目标。 类似于:

use Cake\Collection\Collection;

$collection = new Collection($items);
$sortedByField = $collection->sortBy('field')

如果这不起作用,请使用其他方法,如 groupBy