簡體   English   中英

如何在 foreach php 中獲取值編號($no++)?

[英]How to get value numbering ($no++) in foreach php?

我有 2 個具有不同查詢的 foreach。 第一個 foreach 顯示客戶名稱和交易編號。

第一個 foreach 中的事務編號值不是來自數據庫,而是來自循環 $no++。

如何根據客戶名稱從第一個 foreach 獲取 $no++ 值以存儲在第二個 foreach 中。

此代碼:

$db = new mysqli("localhost","root","","test");

// Query Customer & Transaction No (First Foreach)
$sql_1 = "SELECT nama FROM pesan GROUP BY nama";
$result = $db->query($sql_1);

$no = 1;
foreach($result as $row){
echo $row['nama'].'<br>';
echo ' Transaction No ='.$no++.'<br>';
}


// Query Purchased product details (second Foreach)
$sql_2 = "SELECT product,nama FROM buy";
$result = $db->query($sql_2);

foreach($result as $row){
  echo $row['nama'].'<br>';
  echo 'Product Name  ='.$row['product'].'<br>';
  echo 'Transaction No ='.$no++.'<br>'; // transaction no is taken the value of $no++ from the foreach above based on customer name.
  }

第一次 Foreach 的結果:

farez
Transaction No =1
hardy
Transaction No =2

第二次 Foreach 的結果:

  farez
  Product Name = TV 
  Transaction No = 1
  hardy
  Product Name = radio 
  Transaction No = 2

您實際上可以通過各種方式做到這一點;

其中之一是創建一個數組並將名稱和交易編號保存為 $name => $transaction_number 形式。 為此,您只需將第一個 foreach 更改為:

/*----- Define Array Here ------*/
    $trnoArr = array();

/*----- Define Transacrion Number And Loop through your results------*/
    $no = 1;
    foreach($result as $row){

        /*----- Add your rows to array ------*/
            $trnoArr[$row['nama']] = $no;

        /*----- Echo Your results ------*/
            echo $row['nama'].'<br>';
            echo ' Transaction No ='.$no.'<br>';

        /*----- Increase Number Value ------*/
            $no++;

    }

比在第二個循環中,您可以簡單地從新創建的數組中獲取交易編號,例如:

foreach($result as $row){
    echo $row['nama'].'<br>';
    echo 'Product Name  ='.$row['product'].'<br>';
    echo 'Transaction No ='.$trnoArr[$row['nama']].'<br>'; // Like here
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM