Changing value inside foreach loop doesn't change value in the array being iterated over

前端 未结 9 1909
轻奢々
轻奢々 2020-12-10 04:31

Why does this yield this:

foreach( $store as $key => $value){
$value = $value.\".txt.gz\";
}

unset($value);

print_r ($store);

Array
(
[1] => 101Phon         


        
相关标签:
9条回答
  • 2020-12-10 05:28

    You are rewriting the value within the loop, and not the key reference in your array.

    Try

     $store[$key] = $value.".txt.gz";
    
    0 讨论(0)
  • 2020-12-10 05:28

    I believe this is what you want to do:

    foreach( $store as $key => $value){
    $store[$key] = $value.".txt.gz";
    }
    
    unset($value);
    
    print_r ($store);
    
    0 讨论(0)
  • 2020-12-10 05:29

    How about array map:

    $func = function($value) { return $value . ".txt.gz"; };
    print_r(array_map($func, $store));
    
    0 讨论(0)
提交回复
热议问题