我有這種非常非常基本的代碼改變PHP數組值
foreach ($formatted_results as $result) {
$result['profile_pic']="joe";//set all values to joe
var_dump($result['profile_pic']);//prints joe
}
foreach ($formatted_results as $result) {
var_dump($result['profile_pic']);//does not print joe!
}
其中formatted_results是含有其它陣列的陣列。現在,您可以看到,我在第一個循環中修改了formatted_results中每個數組的值以包含名稱joe,然後我將其打印以確保並確保第一個循環的打印返回「joe」
但是,我設置的值並不是持久的,因爲當我再次循環同一個數組以檢查它自己的數組的內部值時,它給了我舊的值。
代碼和我在這裏顯示的完全一樣,兩者之間沒有任何內容。我猜測這裏有一些關於指針的東西。
因爲在你沒有設置其他的foreach「喬「作爲'$ result ['profile_pic']的值' –
您需要使用引用運算符'&'來反映對數組元素所做的更改。 'foreach($ formatted_results as&$ result)'使它工作。 – Perumal