PHP 陣列內容的「值(Value)」符合某個字串,就要將此符合的 Key 從陣列刪除(Key + Value 都一起刪除),要怎麼做呢?
PHP Array 依照「值」來刪除 Key
資料準備:先隨機來產生陣列的值
使用 foreach 找值
最常見的寫法,直接跑個 foreach 來找出值,再來刪除此 Key
$value) { // 單值的寫法 if ($value == $del_value) { unset($data[$key]); } break; // 若可以確定此 value 只有一個,break 掉會比較快 } ?>
$value) { // 多值的寫法 (多個 value = 'example' 都要移除) if ($value == $del_value) { unset($data[$key]); } } ?>
使用 array_search() 來找值
速度測試比較:
- 上述寫法單值與多值的寫法速度差異大概 2~3倍(單值寫法快很多)
- 單值寫法:foreach 與 array_search() 速度差不多
- 多值寫法:foreach 與 array_search() 速度,foreach 比較快一點 (應該是 array_search() 每次都要從頭再找一次)