如何让一个一维数组的每个键名依次加一

山东小常 发布于 2013/04/23 09:48
阅读 608
收藏 0
PHP

原数组

Array

(

    [0] => Array

        (

            [name] => a

        )


    [1] => Array

        (

            [name] => b       

  )


    [2] => Array

        (

            [name] => c

        )


    [3] => Array

        (

            [name] => d

        )


    [4] => Array

        (

            [name] => e

        )


)

希望得到的数组

Array

(

    [1] => Array

        (

            [name] => a        )


    [2] => Array

        (

            [name] =>b

        )


    [3] => Array

        (

            [name] => c        )


    [4] => Array

        (

            [name] => d

        )


    [5] => Array

        (

            [name] => e        )


加载中
0
梅开源
梅开源

先flip然后map然后再flip

或者end了再逐渐prev,赋值



山东小常
山东小常
数组中的个数不是固定的 还有 能简单举个例子吗 谢谢
0
梅开源
梅开源
 function array_shiftkey($arr){
$arrTemp=$arr;
//逆序遍历
end($arrTemp);
while ( !is_null($key = key($arrTemp)) ) {
$val = current($arrTemp);
//关键操作,有点类似链表
$arrTemp[$key+1]=$val;
prev($arrTemp);
}
//去除第一个元素,注意如果用array_shift,或者slice不带true会重置key
return array_slice($arrTemp,1,null, true);

 }

抽空写了个函数,测试达到效果。

起先说的flip不可行,因为val是array,没看清呵呵。


0
wc1217
wc1217

有一个很简单的方法:
$a = array(0 => array('name' => 'a'), 1 => array('name' => 'b'));
print_r(array_combine(range(1, count($a)), $a));

此处不需要掌声...

如果不连续...要么改combine的第一个参数..要么循环吧.

谁的白菜和臭鸡蛋

0
xlmo
xlmo
$ori_array = array(
		0 => array('name' => 'a'),
		1 => array('name' => 'b'),
		2 => array('name' => 'c'),
		3 => array('name' => 'd'),
		4 => array('name' => 'e'),
		5 => array('name' => 'f'),
	);
	$new_array = array();
	foreach ($ori_array as $k => $v) {
		$k++;
		$new_array[$k] = $v;
	}

	print_r($new_array);
返回顶部
顶部