请告诉我在PHP中取消设置关联数组的中间元素的最佳方法是什么?
假设我有一个10,000个元素的数组,我想删除该数组的中间元素,这是删除中间元素的有效方法吗?
$temp = array('name1'=>'value1','name2'=>'value2',...,'name10000'=>'value10000');
$middleElem = ceil(count($temp) / 2);
$i = 0;
foreach ($temp as $key=>$val) {
if ($i == $middleElem) {
unset($temp[$key]);
break;
}
$i++;
}
以上代码有效的方式?
$temp = Array("name1"=>"value1","name2"=>"value2",...,"name10000"=>"value10000");
$middleElem = ceil(count($temp)/2);
$keys = array_keys($temp);
$middleKey = $keys[$middleElem];
unset($temp[$middleKey]);
Run Code Online (Sandbox Code Playgroud)
有^ _ ^
考虑$array是你的数组,如果它具有奇数个元素,则此代码将删除中间元素.如果它的事件它将删除2个中间元素中的第一个.
$i = round(count($array)/2) - 1;
$keys = array_keys($array);
unset ($array[$keys[$i]]);
Run Code Online (Sandbox Code Playgroud)
测试结果: http ://ideone.com/wFEM2
你需要弄清楚的是当你有一个具有偶数元素的数组时你想要做什么.你想要得到什么元素?
上面的代码选择'lower'元素,代码可以很容易地编辑,使它选择'更高'元素.你唯一需要检查的是(所有其他答案都没有做到)如果你有三个元素会发生什么.它没有选择中间元素,但是最后一个.所以你必须为此添加一个检查.