簡體   English   中英

更改php數組值

[英]changing php array value

我有這個非常非常基本的代碼

  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”

但是,我設置的值不會以某種方式持久化,因為當我再次循環同一數組以檢查其自身數組的內部值時,它為我提供了舊值。

該代碼與我在此處顯示的代碼完全一樣,兩者之間沒有任何關系。 我猜想這里有一些關於指針的東西使我難以理解。

該值未設置為實際array ,而是分配給了在循環外不可用的當前元素。 您需要將值設置為要遍歷的實際array 嘗試-

foreach ($formatted_results as &$result) {
    $result['profile_pic']="joe";//set all values to joe
}

foreach-通過引用傳遞

這是代碼:

    foreach ($formatted_results as $k =>  $result) {
          $formatted_results[$k]['profile_pic']="joe";//set all values to joe
              var_dump( $formatted_results[$k]['profile_pic']);//prints joe
        }
  foreach ($formatted_results as $result) {

              var_dump( $result['profile_pic']);//does not print joe!
        }

$ result不會將數據保存到$ formatted_results

暫無
暫無

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

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