我想問的問題只是出於好奇。爲什麼沒有此代碼的工作:使用foreach循環訪問PHP數組
$table = [
'key1' => 'value1',
'key2' => 'value2',
];
foreach($table as $tb)
{
$tb = strtoupper($tb);
}
print_r($table);
我想問的問題只是出於好奇。爲什麼沒有此代碼的工作:使用foreach循環訪問PHP數組
$table = [
'key1' => 'value1',
'key2' => 'value2',
];
foreach($table as $tb)
{
$tb = strtoupper($tb);
}
print_r($table);
我相信你期待值上成爲case..In你需要的foreach &
這種情況下..
$table = [
'key1' => 'value1',
'key2' => 'value2',
];
foreach($table as &$tb)
{
$tb = strtoupper($tb);
}
print_r($table);
是的,確實如此。但爲什麼這樣呢?我發佈的代碼中發生了什麼?它肯定會改變循環中的數組值。它是否在循環關閉時刪除它們? – user1615069
'&'意味着你引用了一個變量,所以在這樣的變量上做的動作將反映回原來的 –
以及@Koen ... thnx .. –
您可以使用array_map
$table = [
'key1' => 'value1',
'key2' => 'value2',
];
$table = array_map("strtoupper", $table);
print_r($table);
如果你也有什麼改變鍵爲大寫使用array_change_key_case
print_r(array_change_key_case($table, CASE_UPPER));
有趣,謝謝。 – user1615069
不客氣 – Baba
你期望什麼?錯誤是您的期望和實際結果之間的差異。只要你不期望任何事情,代碼就可以工作。 – Oswald
哇,我的錯誤,它在代碼中是foreach($ table爲$ tb),只是複製粘貼問題。 – user1615069
不是很明顯你還沒有定義$ tbl。 – h0lyalg0rithm