【问题标题】:Re-index numeric array keys [duplicate]重新索引数字数组键[重复]
【发布时间】:2012-05-18 10:40:03
【问题描述】:

我有一个使用 explode() 函数构建的数组,但看到我如何将它与随机/动态数据一起使用,我发现索引不断变化:

Array
(
    [2] => Title: Warmly little before cousin sussex entire set Blessing it ladyship.
    [3] => Snippet: Testing
    [4] => Category: Member
    [5] => Tags: little, before, entire
)

我需要始终从 0 开始对数组进行排序。我正在使用不同的数据进行测试,有时它从 0 开始,而在其他测试中,它从不同的数字开始。 我研究并遇到了Array starting at zero,但似乎只适用于该用户的特定情况。我用来构建数组的代码可以在这里看到: https://stackoverflow.com/a/10484967/1183323

我该怎么做?

【问题讨论】:

  • 你是如何构建这个数组的?默认情况下,爆炸将从 0 开始。
  • 你read the manual了吗?

标签: php arrays indexing


【解决方案1】:

使用array_merge() 对数组重新编号:

$your_old_array = array( 2 => 'whatever', 19 => 'huh', 22 => 'yep' );
$your_new_array = array_merge($your_old_array);
print_r($your_new_array);

打印这个:

Array ( 
  [0] => whatever 
  [1] => huh 
  [2] => yep )

【讨论】:

  • 这也行,我得到的结果和array_values差不多,谢谢!
  • 这类似于 array_values 但如果数组中还有字符串键和数字键会更好。 array_merge() 保持字符串键不变,只重新排列数字键。
  • 我认为array_merge 是更好的答案。如果数组中有任何非数字索引,array_values 将删除它们并重新编号。只有array_merge 将保留非数字索引,同时仅重新索引数字索引。
【解决方案2】:
$your_new_array = array_values($your_old_array);

【讨论】:

  • 这已经完成了,但是如果有什么我应该关心的实现这个功能。
  • 没有。根据手册,“array_values() 返回输入数组中的所有值,并对数组进行数字索引。”
  • 请注意,手册不保证会保留值的顺序。
猜你喜欢
  • 2021-12-22
  • 2023-03-06
  • 2012-12-21
  • 2017-08-03
  • 2011-11-25
  • 2017-09-13
  • 1970-01-01
  • 2014-11-12
相关资源
最近更新 更多