2011-06-11 4 views
0

이 코드는 작동하지 않습니다.><b>Fatal error</b>: Cannot use [] for reading i<b> 치명적인 오류</b> : 읽기 위해 []을 사용할 수 없습니다.

 <select style=" width:200px" class="mydds" name="myformdata[user][]"> 

이것은 전송 된 것입니다.

myformdata[user][] 1 
myformdata[user][] 2 
myformdata[user][] 3 

    foreach($form['user'][] as $val){ 
      echo ($val); 
    } 

무엇이 문제입니까?

+0

사용'foreach는 ($ 양식 [ '사용자'])' –

+0

아니면'for' 루프를 사용합니다. –

답변

4

구문 오류입니다. 올바른 구문은 다음과 같습니다.

foreach($form['user'] as $val) 

[] 구문은 데이터를 배열에 추가하는 데 사용됩니다. 예를 들어

$form['user'][] = 'test'; 

test의 값으로 $form['user'] 어레이에 새로운 캐릭터를 추가한다.

+0

설명해 주셔서 감사합니다 – user773961

0

게시 된 정보의 결과는 (내가 제대로 설명을 이해한다면)입니다 : 오류 상태로

$_REQUEST['myformdata']['user'] = array(1,2,3) 

매우 명확하게, 당신은 읽기 []을 사용할 수 없습니다. foreach을 사용하면 코드가 전에 값을 읽으려고합니다. []으로 읽을 수 없습니다.

foreach ($_REQUEST['myformdata']['user'] as $val) { echo $val; } 

또는 정보가 정말 $form['user']에있는 경우 단지를 사용하고 []

1
foreach($form['user'] as $val){ 
    echo ($val); 
} 
1

귀하의 구문이 잘못 건너 대신하려고합니다. 기타 foreach() 제안하는, 나는 외에 for() 루프를 제안합니다 :

for ($i = 0; $i < count($form['user']); $i++){ 
    echo ($form['user'][$i]); 
} 
+0

임시 변수에 카운트를 설정하는 것이 더 좋습니다 :) – AntonioCS

+0

for 루프를 보여줄 필요는 없지만 (특히 대규모 배열의 경우) 최적화 할 때 결과 집합에 변수 세트를 사용하는 것이 더 좋습니다 'count()'. 이것은'count()'가 한번 호출 될 필요가있을 때마다 각 반복을 호출하기 때문입니다. –

관련 문제