如何删除以TOR示例键[27]开头的元素。
Array
(
[1] => memory_target
[2] => vif_2_rx
[3] => vif_2_tx
[4] => memory
[5] => vbd_xvda_read
[6] => vbd_xvda_write
[7] => vbd_xvdd_read
[8] => vbd_xvdd_write
[9] => vif_1_rx
[10] => vif_1_tx
[11] => vif_0_rx
[12] => vif_0_tx
[13] => cpu0
[27] => TOR-SRV65
)
这是我到目前为止所尝试的。
if(($key = array_search($del_val, $messages)) !== false) {
unset($messages[$key]);
}
但是还没能让它上班!
答案 0 :(得分:0)
您可以简单地array_filter()
开头TOR
的元素,如下所示:
$messages = array_filter($messages, function($v){
return !(substr(trim($v), 0, 3) === "TOR");
});
不区分大小写的版本:
$messages = array_filter($messages, function($v){
return !(strtoupper(substr(trim($v), 0, 3)) === "TOR");
});
修改强>
使用preg_grep()
更简单(如果您希望区分大小写,请删除修饰符i
):
$messages = preg_grep ("/[^\bTOR]/i", array_map("trim", $messages));
答案 1 :(得分:0)
尝试:
$array = array(
'memory_target',
'vif_2_rx',
'TOR-SRV65'
);
foreach ($array as $key => $value) {
if (strtolower(substr($value, 0, 3)) == 'tor') {
unset($array[$key]);
}
}
print_r($array); // Output => Array ( [0] => memory_target [1] => vif_2_rx )
答案 2 :(得分:0)
我正在使用此函数从数组中删除键
function removeValueFromArray($array, $key, $value){
foreach($array as $subKey => $subArray){
if($subArray[$key] == $value){
unset($array[$subKey]);
}
}
return $array;
}
此函数根据特定值从数组中删除键并返回最终数组