這是我的代碼:PHP:我的foreach循環給了我每個元素的兩個值,我該如何阻止它回聲呢?
foreach($total_columns as $value){
echo "<td><b>{$value}</b></td>";
}
每個$值正在呼應了兩次,一個是數字鍵和一個用於關聯的關鍵。我如何阻止這種情況發生?
這是我的代碼:PHP:我的foreach循環給了我每個元素的兩個值,我該如何阻止它回聲呢?
foreach($total_columns as $value){
echo "<td><b>{$value}</b></td>";
}
每個$值正在呼應了兩次,一個是數字鍵和一個用於關聯的關鍵。我如何阻止這種情況發生?
array_unique我猜你的陣列來自於一個MySQL記錄? 如果是這樣,那麼在那裏使用mysql_fetch_assoc
!
mysql_fetch_array would output =>
array
(
[0] => "1"
"foo" => "1"
[1] => "2"
"bar" => "2"
)
mysql_fetch_assoc outputs =>
array
(
"foo" => "1"
"bar" => "2"
)
這可能是,你的雙重條目來自哪裏。 如果是這樣,請參閱該文檔here
1)首先從$ total_columns中刪除雙鍵。
2)檢查密鑰是字符串還是整數。
foreach($total_columns as $key => $value){
if(gettype($key) == "integer"){
...
}
}
那麼,如果你只是想使你的代碼的工作,不關心它爲什麼不試試這個:
for($i=0;$i<sizeof($total_columns);$i++)
{
echo "<td><b>{$value}</b></td>";
}
而在這個例子''價值'來自哪裏? – Dale
print_r($total_columns);
結果:
[13] => 100 [goods_total] => 100 [14] => 100 [vat_total] => 100 [15] => 200 [gross_total] => 200
很明顯,當您嘗試使用foreach打印它們時會得到重複的值。
如果您可以調查$ total_columns中不存在重複值,那將會很棒。仍然無法理解你從哪裏得到它們。
讓我們知道它的起源。
感謝
或者只是閱讀mysql_fetch_array()的手冊和實際正確使用第二個參數(默認:MYSQL_BOTH /你的選擇:MYSQL_ASSOC)。
'$ total_columns'包含什麼? – Joe
'print_r($ total_columns);'你期望的是什麼? – Dale
這是一個數字和空格的數組。它包含報告中每一列的總數,但如果報告值不是數字,則它只是有一個空格。 – Sw1sh