2013-04-17 4 views
0

왜 다음 두 코드 블록에서 $arr을 인쇄해도 $arr['type'][0]은 출력되지 않지만 혼동 스럽습니다. 두 번째 코드 블록의 출력에 r을 주목하라 :PHP 배열의 인덱스 위치 값 가져 오기

$arr=array('type'=>' review'); 
print_r($arr); 
echo '<br>'; 
print_r($arr['type'][0]); 

$arr['type']='review'; 
print_r($arr); 
echo '<br>'; 
print_r($arr['type'][0]); 

OUTPUT

Array ([type] => review) 

Array ([type] => review) 
r 

답변

2

여분의 공간이있다 :

$arr=array('type'=>' review'); 
        ^-- right there 

HTML이 공백을 구분하지 않으므로 보이지 않는 공간이 인쇄되고 있다고 생각합니다.

PHP가 경고를 던질 수도 있습니다. 배열과 같이 문자열을 인덱싱하는 것은 대개 버그입니다. 오류 및주의 사항이 켜져 있는지 확인하십시오.

+0

omg 그건 내 부분에 그냥 바보입니다. 나는 더 높은 단계가 진행되고 있다고 생각했습니다. 감사! –

+1

그 일이 생길 때 나는 그것을 싫어한다 ... 우리가 충분히 오래 오래 있었다면 우리는 모두 그것을 끝냈다. – Abela

1

실제로 같은 일을합니다.

$arr = array('type' => ' review'); 
// ---------------------^ 
print_r($arr); 
echo '<br>'; 
print_r($arr['type'][0]); 
2
첫 번째 코드 블록에서

, $arr=array('type'=>' review'); 첫 번째 따옴표 및 검토의 R 사이에 공백이 : 첫 번째 블록에있는 공간을 확인합니다. 첫 번째 코드 블록이 공백 문자를 출력하기 때문에 아무 것도 인쇄하지 않는 것입니다.

이 코드를 수정하려면 $arr=array('type'=>'review');으로 변경하십시오.

0

print_r은 배열 정보를 인쇄합니다. print_r을 전달하는 배열은 모든 문자 배열 인 문자 배열입니다. [0]은 'r'을 나타내고, [1]은 'e'를 표시합니다. print_r ($ arr [ 'type'])이 전체 문자열을 표시하고 두 번째 인덱스를 추가하면 사용자가 제공 한 모든 인덱스에서 해당 문자가 표시됩니다.

관련 문제