2010-08-17 4 views
10

루프 또는 재귀를 사용하지 않는 방법으로 값이있는 배열을 만들고 채우는 방법이 있습니까? PHP에서 루프없이 값으로 배열 채우기

는 정확히 말하면, 나는

$t = array(); 
for($i = 0; $i < $n; $i++){ 
    $t[] = "val"; 
} 

그러나 간단하게하는 효과를 갖고 싶어. 난 당신이

$array = array_pad(array(), $n, "val"); 

원하는 효과를 얻기 위해 사용할 수 있다고 생각

$t = array_fill(0, $n, 'val'); 
+0

나는,이 질문은 좀 오래 알고 있지만 방법으로 전체 배열을 무효화 할 필요가 문자열 대신 int의 범위로 배열을 채우려면? – MJoraid

답변

28

사용 array_fill()를 얻을.

그것은 당신이 무슨 뜻인지 달려 php.net

+2

당신이 나를 때렸을 때; 관심이 있으시다면, array_fill은 for 루프 버전보다 4 배 빠릅니다. – Obto

1
$a = array(); 
$a[] = "value"; 
$a[] = "value"; 
$a[] = "value"; 
$a[] = "value"; 
$a[] = "value"; 
$a[] = "value"; 
$a[] = "value"; 
$a[] = "value"; 
$a[] = "value"; 
$a[] = "value"; 
$a[] = "value"; 
$a[] = "value"; 
$a[] = "value"; 
$a[] = "value"; 
$a[] = "value"; 
$a[] = "value"; 
$a[] = "value"; 
$a[] = "value"; 
$a[] = "value"; 
$a[] = "value"; 
$a[] = "value";  

당신은 아이디어를

+2

어떻게 그에게 더 간단합니까? 더 많은 코드와 하드 코드로 동일한 항목을 얼마나 많은 항목을 생성했는지 추적 할 수 있습니다. 편집 : 실제로 당신이 실제로 루프의 요구를 충족 시키지만 실제로는 실현되었습니다. – Iznogood

+2

루프를 사용하지 않고 배열을 채울 수있는 유일한 방법이기 때문입니다. 다른 모든 방법은 무대 뒤에서 루프를 사용합니다. – Stephen

+0

@Iznogood 예, 그는 대답했습니다. 메신저를 태우지 않았습니다. :-) – Chris

0

array_pad()를 참조하십시오. 배열을 채울 수있는 함수가 있지만 모두 뒤에서 루프를 사용합니다. 방금 코드를 루프를 방지하기 위해 찾고있는 가정하면, array_fill을 사용할 수

// Syntax: array_fill(start index, number of values; the value to fill in); 
$t = array_fill(0, $n, 'val'); 

을 즉

<?php 
    $t = array_fill(0, 10, 'val'); 
    print_r($t); 
?> 

는 줄 것이다 :

Array (
    [0] => val 
    [1] => val 
    [2] => val 
    [3] => val 
    [4] => val 
    [5] => val 
    [6] => val 
    [7] => val 
    [8] => val 
    [9] => val 
) 
0
$a = array('key1'=>'some value', 'KEY_20'=>0,'anotherKey'=>0xC0DEBABE); 

은/* 우리가 KEEP 안전 키 */

$a = array_fill_keys(array_keys($a),NULL); 

var_export($a); 

/*result: 

array(
    'key1'=>NULL, 
    'KEY_20'=>NULL, 
    'anotherKey'=>NULL 
); 
*/