2011-01-08 11 views
0

私はキーを定義して別の配列値に基づいて配列を作成しようとしていますか?キーを定義して別の配列値に基づいて配列を作成しますか?

など。

$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

答えて

2

使用array_slice()

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

ヒント:

  • あなたはキーを含めへとまでのサブ配列を返したかったです。その代わりに、を返すことはずっと多く、鍵はです。したがって、+1が必要でした。
  • $old_arrayをグローバルに使用すると、貧弱なスタイルです。むしろ関数の引数として渡すことをお勧めします。
  • array_slice()は、わずかな違いを除いて、あなたが望むものをすでに実行しているので、機能を隠すラッパー関数を記述するのではなく、直接呼び出すことにします。
+0

+1元の質問で見られる 'グローバル'は私には不安ですが... – BoltClock

+0

@BoltClockそれを編集しています:) – marcog

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へ。

+1

あなたは実際にこの特定の質問に答えるためにそれを使用する方法を示すことができればいいですマニュアルから例を取り上げるだけです。 – BoltClock

+0

@BoltClock:例はかなりシンプルでクリアです! –

+0

@Oli Charlesworth:彼らはこの場合、私が推測する... – BoltClock

関連する問題