【问题标题】:How to rearrange numbers in array in PHP如何在 PHP 中重新排列数组中的数字
【发布时间】:2015-05-12 23:47:54
【问题描述】:

我的号码是这个;

$input =array{1,2,3,4,6,8,11}

我想做;

$input =array{1,2,3,4,5,6,7}

*将 6 更改为 5、8 更改为 6 和 11 更改为 7

我希望你明白我想说的话。

【问题讨论】:

  • 那就去吧!你有没有尝试过?
  • $input = range(1, count($input));
  • @MarkBaker 似乎 OP 没有回来或回应任何答案/cmets
  • 实际上我想要做的是这样的:array(31 => a, -1 => b, 30 => c,) 到这个:array(1 => b, 2 = > c, 3 => a)

标签: php mysql codeigniter numbers


【解决方案1】:

使用这个

$input = array_values($input);

array_values() 返回数组中的所有值,并对数组进行数字索引。

使其成为基数数组:

array_unshift($input, "dummy");
unset($input[0]);

编辑: 我明白了,我可能误解了这个问题。试试这个:

$input_ = array();

for($i=1; $i <= count($input); $i++) {
$input_[] = $i;
}

print_r($input_);

【讨论】:

  • 这是重新索引数组而不是 OP 想要的
  • 我相信这正是他想要的,我是不是看错了他的例子?
  • 实际上我想要做的是这样的:array(31 => a, -1 => b, 30 => c,) 到这个:array(1 => b, 2 = > c, 3 => a)
  • 您能解释一下为什么以及数据的来源吗?可能有更直接的解决方案可用。
【解决方案2】:

试试这个

编辑

 $input =array(1,2,3,4,6,8,11);

for($i=0;$i<count($input);$i++)
{
    if($input[$i]!=($i+1))
    {
        $input[$i] = ($i+1);
    }
}
print_r($input);

【讨论】:

  • 我已经删除了我的帖子,因为它看起来和你的很相似。
  • @Saif 你不需要......虽然两者都有点不同......你正在更改所有键值,而我只是在更改不匹配的值
  • 不过这个比我的更合适
【解决方案3】:

这是一个奇怪的请求,我不确定它背后的逻辑或推理是什么。尽管如此,只要用数组值翻转数组键就会产生这个结果。我们插入一个空值,然后将其删除以使索引开始为 1。

$input = array(1,2,3,4,6,8,11);
array_unshift($input,"");
unset($input[0]);
$flipped = array_flip($input);

【讨论】:

  • 实际上我想要做的是这样的:array(31 => a, -1 => b, 30 => c,) 到这个:array(1 => b, 2 = > c, 3 => a)
【解决方案4】:

试试这个

$input =array(1,2,3,4,6,8,11);
array_push($input,1);
$res = array_keys(array_values($input));
$data = array_shift($res);
echo "<pre>";
print_r($res);

结果数组

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

【讨论】:

  • 实际上我想要做的是这样的:array(31 => a, -1 => b, 30 => c,) 到这个:array(1 => b, 2 = > c, 3 => a)
  • $numbers = array( 31 => a, -1 => b, 30 => c); ksort($数字); $res = array_values($numbers); print_r($res);
猜你喜欢
  • 2023-03-27
  • 2011-11-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-28
  • 1970-01-01
  • 2013-03-29
相关资源
最近更新 更多