我有一个这样的数组:
8:16, 9:8, 10:11, 11:5, 12:5, 13:13, 14:42
我希望它是:
0:16, 1:8, 2:11 ....
PHP中的。
我知道我可以做自己的功能。但我认为它应该是内置的。
我试过了:array_values
答案 0 :(得分:3)
答案 1 :(得分: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);
答案 2 :(得分:0)
您可以使用natsort()
答案 3 :(得分:0)
使用
array_values($yourArray);
我认为它应该可以正常运作。
答案 4 :(得分: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内部功能。