【问题标题】:unset range of keys in an array未设置数组中的键范围
【发布时间】:2011-01-22 02:45:30
【问题描述】:

如何在这样的数组中取消设置介于 70 到 80 之间的键范围?

[63] => Computer Science and Informatics
[64] => Dentistry
[65] => Development Studies
[66] => Drama, Dance and Performing Arts
[67] => Earth Systems and Environmental Sciences
[68] => Economics and Econometrics
[69] => Education
[70] => Electrical and Electronic Engineering
[71] => English Language and Literature
[72] => Epidemiology and Public Health
[73] => European Studies
[74] => French
[75] => General Engineering and Mineral & Mining Engineering
[76] => Geography and Environmental Studies
[77] => Geography and Environmental Studies
[78] => German, Dutch and Scandinavian Languages
[79] => Health Services Research
[80] => History
[81] => History of Art, Architecture and Design
[82] => Iberian and Latin American Languages
[83] => Infection and Immunology
[84] => Italian
[85] => Law
[86] => Library and Information Management
[87] => Linguistics
[88] => Mechanical, Aeronautical and Manufacturing Engineering
[89] => Metallurgy and Materials
[90] => Middle Eastern and African Studies

【问题讨论】:

  • 它删除了 67 个键,所以不想单独取消设置每个键

标签: php arrays key unset


【解决方案1】:

你可以试试array_slice

$return = array_slice($original, 0, 60)

然后

$return = $return+array_slice($original, 70)

array_splice

$return = array_splice($original, 60, 10)

【讨论】:

  • 这行得通,但它确实效率低下。除了您开始使用的数组之外,您还创建了 3 个数组。
  • 鉴于它是一个相当小的数据集,我可能会选择这个解决方案,我认为它的 效率 不会对性能,加上它是可读的,有点优雅。投票赞成。
【解决方案2】:

这并没有真正的捷径:

for ($i = 70; $i <= 80; $i++)  
    unset($array[$i]);

【讨论】:

  • 这个也是+1,它是一个更简单的解决方案,并且可以完成相同的工作
  • 这有点令人失望,所有 PHP 编码人员总是问是否有一个函数可以做一些奇怪的事情,而 for()/foreach() 循环做得很好。
  • 你可以在未设置期间通过数组向前走吗?这不会导致在您移动时将下一个元素的索引更改为未设置的问题吗?我原以为你必须从 80 步到 70 步,递减 i。
猜你喜欢
  • 2016-04-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多