【问题标题】:PHP Aligning Array Key ValuesPHP对齐数组键值
【发布时间】:2011-05-30 15:55:32
【问题描述】:

我在 Google 上搜索了两天,并尝试查看 PHP 手册,但我仍然不记得对齐 PHP 数组的键值的函数。

我正在寻找的只是接受这个的函数:

Array
(
    [0] => 1
    [3] => 2
    [4] => 3
    [7] => 4
    [9] => 5
)

并将其转换为:

Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)

基本上,数组首先按键排序(它们附加的值与它们保持一致),然后将所有键设置为所有计数数字,连续,不跳过任何数字(0,1,2,3, 4,5,6,7,8,9...)。几个月前我看到它与 ksort() 一起使用,但无法记住或找到这个难以捉摸的功能。

【问题讨论】:

    标签: php arrays sorting key


    【解决方案1】:

    你可以使用array_merge:

    $array = array_merge($array);
    

    它将使用数字键重新索引值。

    更新:使用@LostInTheCode's answer 中提议的array_values 可能更具描述性。

    【讨论】:

      【解决方案2】:

      嗯,你看,这个很难,因为 PHP 数组函数页面上的一般描述并没有说这个函数可以满足你的需求。

      但是您可以使用ksort() 对数组进行排序,然后使用:array_values()。来自 PHP 手册的页面:

      array_values() 返回输入数组中的所有值并以数字方式索引该数组。

      【讨论】:

      • 这里我不懂ksort()的用法。 array_values() 应该足够了,因为无论如何我们都在删除密钥。如果有的话,应该有一个sort()(在关键值上)。
      【解决方案3】:
      function array_reset_index_keys($array)
      {
          $return = array();foreach($array as $k => $v){$return[] = $v;}return $return;
      }
      

      然后像普通函数一样使用,应该重新索引数组

      您还可以使用原生函数,例如 array_values,它将数组的值返回到一维数组中,从而使其被重新索引。

      【讨论】:

      • 二维数组是什么意思? array_values 只返回值。只有一个维度。
      • 是的,当您评论先生时,我正在添加本地替代品 :)
      • 您评论先生时我正在更改我的评论;)
      • 2d 的意思是“单一维度”
      猜你喜欢
      • 1970-01-01
      • 2023-03-25
      • 1970-01-01
      • 2013-01-05
      • 2017-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-31
      相关资源
      最近更新 更多