# php5.3以后的foreach的&符號不建議使用.md
## 1、原因
有時候會出現奇怪的問題, 有時候上邊的foreach沒問題,下邊的卻出現了問題!究其原因一句話解釋:
>在 `foreach($arr as &$value)` 數組遍歷到最后,引用關系并沒有斷開
什么原因呢?一篇文章詳細解釋了這一切,文章地址:http://note.youdao.com/share/?id=246baa8f946c354d9ddee002dd0e3df6&type=note#/
## 2、php5.3以前的寫法:
```
foreach ($arr as $key => &$value){
$value['sex'] = 'man';
}
```
## 3、php5.3以后的寫法:
```
foreach ($arr as $key => $value){
$value[$key]['sex'] = 'man';
}
```
或者
```
foreach ($arr as $key => &$value){
$value['sex'] = 'man';
}
unset($value);
```
## 4、示例如下:
```
<?php
$arr = array(
array(
"id"=>"1",
"value"=>21
),
array(
"id"=>"2",
"value"=>22
),
array(
"id"=>"4",
"value"=>23
)
);
//比如增加一個 sex 的值
foreach ($arr as $key => &$value){
$value['sex'] = 'man';
}
//print_r($arr);
foreach ($arr as $key => $value) {
$arr[$key]['sex'] = 'man';
}
//print_r($arr);
```
- 一維數組操作方法
- 求得這個數組中各個元素之和
- 取出兩個數組中相同的內容
- 將數組元素組合為字符串implode
- 將字符串轉化為數組explode
- 逗號分割的字符串去重
- 一維數組增加某個值
- PHP從數組中找到指定元素的位置
- 二維或多維數組操作方法
- 根據某一個鍵值合并生成一個新的二維數組
- 二維數組變一維數組
- 二維數組取一個值變一維數組
- php二維數組合并及去重復的方法
- php數組根據某鍵值,把相同鍵值的合并最終生成一個新的二維數組
- 二維數組增加一個值
- 生成無限級樹算法
- sql2md SQL轉化為markdown語法
- PHP修改多維數組中的某個值
- 二維數組
- 省市區聯動的查詢
- PHP求某二維數組,某一列元素的最大最小值
- php 求二維數組的差集
- 按某個鍵值排序
- 基本知識
- 鍵名作為鍵值
- PHP中foreach的用法和實例
- PHP foreach 循環案例
- php5.3以后的foreach的&符號不建議使用
- PHP中判斷變量為空的幾種方法小結
- 判斷PHP數組是否為空的代碼
- php刪除數組中指定值的元素的幾種方法
- PHP刪除數組中的指定元素
- php數組函數序列之array_keys() - 獲取數組鍵名
- php 中更簡潔的三元運算符 ?:
- 函數
- 字符串函數
- 數組函數
- 實例
- 將 $arr 中age大于第一個大于30的人增加一項一條信息
- 強大的數組函數