2013-02-07 5 views
1

그래서 간단한 예PHP foreach 루프 혼란?

$ar = array("some text","more text","yet more text"); 

foreach($ar as $value){ 

echo $value."<br>"; 

} 

나는 우리가이 내부 foreach 루프를 수행 할 때

some text 
more text 
yet more text 

그래서 내 질문에 "$ 값으로 $ 아칸소" 내가 그 $을 알 수있는 결과를 얻을 것 ar은 배열입니다. 그러나 두번째 것은 $ 값이 단순합니다 변수입니까 아니면 또 다른 배열입니까? 우리는 다음과 같은 방법으로 그것을 할 수 있기 때문에 너무

foreach($ar as $value){ 

echo $value[0]."<br>"; 

} 

은 어느 PHP에서

s 
+1

모든 문자열 같은 것을 사용할 수 있습니다 표시하고 싶어했다 경우 [0]입니다 문자열의 첫 글자 –

+0

[문자에 의한 문자열 액세스 및 수정] (http://www.php.net/manual/en/language.types.string.php#language.types.string.substr) – sachleen

답변

1

초래, 문자열은 바이트 배열입니다. $value의 위치 0를 참조하면 문자열 (some test에서 s)

귀하의 실제 배열은 다음과 같습니다에 위치 (0)을 의미한다 :

Array 
(
    [0] => some text 
    [1] => more text 
    [2] => yet more text 
)

당신은 배열의 인덱스 위치를 액세스하려는 경우 수행 할 수 있습니다

foreach($ar as $key=>$val) { 
    echo "$key - $val"; 
} 

을 어떤 출력 :

0 - some text 
1 - more text 
2 - yet more text
+0

감사합니다. 많이 njk! –

1

$value은 배열의 값이며 배열이 중첩되어 있지 않으면 배열 자체가 아닙니다 (array(array('a','b'),array('b','c'))). 그래도 subscripting 문자열은 가능하며 이것은 문자열의 첫 번째 문자를 얻은 방법입니다.

+0

하지만 루프 밖에서 $ value [0]으로 $ value를 echo하고 여전히 첫 번째 문자를 얻을 수 있습니까? –

+0

'$ value' 변수에 할당 된 것이 있다면, 그렇습니다. '$ value = 'zxc'와 비슷합니다. echo $ value [0];'. –

+0

그래서 문자열 변수는 배열입니까? –

1

그 일은 $value[0]이 문자열의 첫 번째 문자에 액세스한다는 것입니다.

문자열은 내부적으로 배열로 표시됩니다. 따라서 문자열의 인덱스 0에 액세스하는 것은 첫 번째 문자에 액세스하는 것과 같습니다. 당신의 문자열 "일부 텍스트가"의

로 시작하기 때문에 당신은 당신이 얻을해야 다음

array(
    [0] => array(
     [0] => 's', 
     [1] => 'o', 
     [2] => 'm', 
     [3] => 'e', 
     //... 
    ), 
    [1] => array(
     [0] => 'm', 
     [1] => 'o', 
     [2] => 'r', 
     [3] => 'e', 
     //... 
    ), 
    //... 
); 
1

로 예를 볼 수있다 "s"를 인쇄하는 이유

s m y 

은 별도의 행에 있습니다.

현재 br 태그는 오래된 모자입니다.

1

PHP로 문자를 통한 문자열 액세스 및 수정이 가능합니다.당신이 알아야 할, 그리고 아마도 문자열이 문자열로 표현이있는 동안, 때로는이 배열로 간주 될 수 있는지 몰랐 :이 예를 살펴 보자 :

$text = "The quick brown fox..."; 

지금, 당신은 $text[0] 에코한다면 당신이 T을 수 있도록이 경우에 발생하는 문자열의 첫 글자를 얻을 것, 또는 $text[0] = "A";을하고, 수정하고 싶다면 당신은 여기 "A"

에 편지 "T" 변경 될 것은 PHP Manual에서 좋은 튜토리얼 , 문자열을 배열로 처리하여 문자열을 액세스/수정하는 방법을 보여줍니다.

<?php 
// Get the first character of a string 
$str = 'This is a test.'; 
$first = $str[0]; 

// Get the third character of a string 
$third = $str[2]; 

// Get the last character of a string. 
$str = 'This is still a test.'; 
$last = $str[strlen($str)-1]; 

// Modify the last character of a string 
$str = 'Look at the sea'; 
$str[strlen($str)-1] = 'e'; 

?> 

은 BTW : 당신은, 당신의 배열 내부의 첫 번째 값, 당신은 배열의 $ 값으로 해결할 수 있습니다 PHP에서

<?php 
$ar = array("some text","more text","yet more text"); 

for ($i=1; $i<=1; $i++) 
    { 
    echo $ar[0]; 
    } 

?> 
+0

그래서 문자열 변수는 배열입니까? –

+0

@AbdulRaziq 업데이트를 확인하십시오. 문자열이 간단한 표현인데도 배열로 액세스 할 때 작은 객체로 처리 될 수 있다는 것을 의미합니다. – samayo

+0

Btw : 당신이 찾고있는 것이 마지막 스크립트 일 것 같아요. – samayo