0

我有一个这样的数组:

8:16, 9:8, 10:11, 11:5, 12:5, 13:13, 14:42

我希望它是:

0:16, 1:8, 2:11 ....

在 PHP 中。

我知道我可以做一个自己的功能。但我认为它应该是内置的。

我试过了:array_values

4

5 回答 5

3

这个函数应该可以解决问题:

$array = array_values($array);

见: http: //php.net/array_values

于 2013-04-19T12:04:50.967 回答
1

请试试这个,我认为它是您的确切要求。

$arr = array('8:16', '9:8','10:11');

$i=0;
foreach($arr as $val){

    $arr1 = explode(':',$val);
    $arr2[] = $i.":".$arr1[1];
    $i++;
}
print_r($arr2);
于 2013-04-19T12:13:43.207 回答
0

利用

array_values($yourArray);

我认为它应该可以正常工作。

于 2013-04-19T12:22:41.653 回答
0

您可以使用natsort()

文档

于 2013-04-19T12:05:36.517 回答
0

我认为@Praveenkalal 怀疑你的意思,但我只会添加另一种选择:

$i = 0;
array_walk($array, function(&$v) use(&$i) {
  $v = preg_replace('/\d+:(\d+)/', ($i++).':$1', $v);
});

运行代码

或者,如果您的数组已经是零索引,就像我们假设的那样,这将起作用:

foreach($array as $key => &$val)
  $val = preg_replace('/\d+:(\d+)/', $key.':$1', $val);

运行代码


数组...有趣有趣有趣

只是为了澄清一下-没有内置函数,因为您所做的事情太具体了-如果您的数组值是键:值对,那么通常您会将它们映射到这样的数组-这就是我们都认为的array_values原因充足的。

例如,如果您的数据采用以下格式:

$array = array(
  8  => 16, 
  9  => 8, 
  10 => 11,
 ...
);

您将拥有完整的 php 内部功能。

于 2013-04-19T12:36:49.117 回答