2010-01-03 1 views
1

나는이있다 :이 오래된 점점Codeigniter : 필드 증가를 1 씩 최대 숫자로 만드시겠습니까? 내 검증 클래스에서

$fields['a_1'] = 'First Question'; 
    $fields['a_2'] = 'Second Question'; 
    $fields['a_3'] = 'Third Question'; 
    $fields['a_4'] = 'Fourth Question'; 

- 내가 쓸 수있는 이들의 40가 있고, 각 세트는 일치하는 유효성 검사 규칙이 있습니다

$rules['a_1'] = 'hour'; 
    $rules['a_2'] = 'hour'; 
    ... 

거기인가 방법은 대답 :

$fields['a_' . 1 - 17] = "One, Two" 

기타 ...

단지의 curiou 그게 아니라면, 나는 그것을 무력하게 할 것이다.

답변

1

당신은 시도 할 수 있습니다이 $ar 당신이 순서대로 할당 할 값의 목록이 포함

$ar=array("One","Two","Three"); 

for($i=1;$i<18;$i++){ 
    $fields["a_".$i]=$ar[$i]; 
} 

0

this page과 같이 범위가있는 foreach 루프를 사용할 수 있습니까?

foreach (range(1, 17) as $i) { 
    $fields['a_' . $i] = "One, Two"; 
} 

또는 다른 배열에 값을 참조해야하는 경우 :

$other_array = ("some", "other", "values"); 
foreach (range(1, count($other_array)) as $i) { 
    $fields['a_' . $i] = $other_array[$i+1]; 
} 
+0

$ other_array.length PHP에 ?? 두 번째 발췌 문장은 javascript와 PHP의 하이브리드입니다 – ekhaled

+0

그래, 맞아, 고마워 .- 몇 년 후에 PHP를 사용하지 않았어. 왜 그들은 그것들을 객체 메쏘드가 아닌 언어 키워드로 만들겠습니까? 그러나 그것은 * PHP, LOL입니다. –

+0

probs 없음, 편집 중 ... PHP에서 대괄호로 배열을 정의하지 않으려면 $ other_array = array ("some", "other", "values") 여야합니다. – ekhaled

0

질문을 변경할 수없는 경우가 있습니다. $ foo [ 'a_1']는 $ foo [ 'a'] [1]로 작성하는 것이 더 좋습니다. 보다 훨씬 쉽게 작업 할 수 있습니다. 보다 훨씬 쉽게 작업 할 수 있습니다. 배열과 함께 유효성 검사 규칙 (및 다른 관계)을 항목 자체와 함께 저장합니다.

$foo['a'] = array(array('fieldname' => 'First Question', 'rule' => 'hour')); 
+0

당신이 의사 소통하려는 것은 제게 조금 이상합니다 ... –

+0

당신이 기분이 좋다면 ## PHP on irc.freenode.net에 가입하여 저를 찾으십시오. 이것을 설명해보십시오. 정말 시간을 절약하고 코드의 전반적인 가독성을 향상시킬 수 있다고 생각합니다. – TML

관련 문제