2011-01-08 49 views
0

我想通过定义一个键来创建一个基于另一个数组值的数组?通过定义一个键来基于另一个数组值创建一个数组?

E.g.

$old_array = array('hey', 'you', 'testing', 'this'); 

function get_new_array($key) { 
global $old_array; 

//return new array... 
} 

$new_array = get_new_array(2); //would return array('hey, 'you', 'testing'); as its the values of all the keys before the key 2 and the 2 key itself 

感谢所有帮助! :B

+2

如果你打算把它放在一个自定义的函数中,我觉得使用`global`是个好主意。 – BoltClock 2011-01-08 01:38:22

回答

2

使用array_slice()

function get_new_array($key) { 
    global $old_array; 
    return array_slice($old_array, 0, $key+1); 
} 

几点建议:

  • 你想子阵列最多返回和包括的关键。取而代之的是不包括的关键。因此+1是necassary。
  • 使用$old_array作为一个全球性很差的风格。我建议将它作为参数传递给函数。
  • 由于array_slice()已经做了你想要的,除了小的差异,我会直接调用它,而不是写一个隐藏功能的包装函数。
+0

+1我在原始问题中看到的`global`让我感到不安... – BoltClock 2011-01-08 01:37:15

+0

@BoltClock正在编辑:) – marcog 2011-01-08 01:39:56

1
$new=array_slice($old_array,0,3); 
0

使用array_slice()函数:

$input = array("a", "b", "c", "d", "e"); 

$output = array_slice($input, 2);  // returns "c", "d", and "e" 
$output = array_slice($input, -2, 1); // returns "d" 
$output = array_slice($input, 0, 3); // returns "a", "b", and "c" 

链接manual

相关问题