3
A
回答
2
我可能是錯的,但我想取消設置元素的數組中會看的唯一途徑調整與您所擁有變量引用的值相匹配的索引,然後取消設置該元素。
$arr = array('a' => 1, 'b' => 2);
$xxx = &$arr['a'];
$keyToUnset = null;
foreach($arr as $key => $value)
{
if($value === $xxx)
{
$keyToUnset = $key;
break;
}
}
if($keyToUnset !== null)
unset($arr[$keyToUnset]);
$unset($xxx);
好吧,無論如何,沿着這些線。但是,請記住,這不是超高效的,因爲每次你需要取消設置一個元素時,你必須遍歷整個數組來尋找它。
假設您可以控制$ xxx的使用方式,您可以考慮使用它來保存數組中的鍵,而不是引用鍵上的元素。這樣,當您想要取消設置元素時,您不需要搜索數組。但是,你將不得不更換使用$ XXX一個數組解引用的所有站點:
$arr = array('a' => 1, 'b' => 2);
$xxx = 'a';
// instead of $xxx, use:
$arr[$xxx];
// to unset, simply
unset($arr[$xxx]);
+0
不錯的解決方案,但下面的代碼呢? $ arr = array('a'=> 1,'b'=> 2,'c'=> 1); $ xxx =&$ arr ['c']; 這就是爲什麼它不適用於我:( – 2012-07-13 02:57:54
1
當您取消設置引用,只是斷開了變量名和變量內容之間的綁定。這並不意味着變量內容將被破壞。
,並且相對於上面的代碼 - 我不認爲有需要在單獨的密鑰
foreach($arr as $key => $value)
{
if($value === $xxx)
{
unset($arr[$key]);
break;
}
}
0
答案很簡單:
$arr = array('a' => 1, 'b' => 2);
$xxx = 'a';
unset($arr[$xxx]);
print_r($arr); // gone :)
即你可能永遠不會真正需要的。一個參考。只需將$xxx
設置爲適當的鍵即可。
相關問題
- 1. 取消設置另一個數組內的數組索引
- 2. 取消設置組變量
- 3. 取消設置空數組元素
- 4. 會話數組未被取消設置
- 5. Array_filter從數組中取消設置值
- 6. 在會話中取消設置數組中的項目
- 7. 從函數中取消引用數組項目
- 8. 如何在取消設置數組值後設置鍵值?
- 9. PHP - 如何通過值取消設置數組索引的索引
- 10. 通過索引設置數組對象的值設置所有數組項目
- 11. 取消引用Perl中的數組鍵
- 12. C++中的取消引用結構數組項目
- 13. 取消設置多維數組中的數組php
- 14. 取消設置參數
- 15. cfhtmlhead重置/取消設置或取消?
- 16. 取消設置基於位置的多個數組元素
- 17. 如何在數組中取消設置值後重置鍵?
- 18. 如何在Perl中取消引用數組數組?
- 19. 通過指向數組的指針取消引用數組值
- 20. 設置索引索引數組時的Numpy數組值
- 21. 設置/取消設置下劃線TextView
- 22. 設置後取消設置scrollToIndex
- 23. 設置和取消設置Cookie
- 24. 取消設置變量vs設置爲'
- 25. 未設置通過引用傳遞,也取消原始值
- 26. 如何取消設置由空鍵的數組在PHP
- 27. 在href點擊會話中取消設置數組值
- 28. 取消設置(刪除)數組鍵在php
- 29. 在foreach循環中取消設置多維數組
- 30. 我應該取消設置我的PHP數組值嗎?
不能設置($ arr); ?? – Nalaka526 2012-02-05 02:34:28