PHP foreach에서 "as $ key => $ value"와 "as $ value"의 차이점
나는 데이터베이스 호출이 있고 루프 $key => $value
에서 무엇을하는지 알아 내려고 노력하고 foreach
있습니다.
내가 묻는 이유는이 두 코드가 동일한 결과를 출력하기 때문입니다. 그래서 왜 이렇게 작성되었는지 이해하려고 노력하고 있습니다. 코드는 다음과 같습니다.
foreach($featured as $key => $value){
echo $value['name'];
}
다음과 같이 출력됩니다.
foreach($featured as $value) {
echo $value['name']
}
내 질문은 그래서, 차이 무엇 $key => $value
하거나 $value
의 foreach
루프. 그 차이를 만드는 경우 배열은 그냥 통과하는 이유를 알고 싶어, 다차원 $key
에 $value
에 foreach
루프.
그래서, $key => $value
foreach는 루프 인덱스와 키가 게재 대신 0,1,2 같은 다수의 값을 결정하기 위해 연관 배열의 키 - 값 쌍을 지칭 더 ... PHP는 연관 배열처럼 이:
$featured = array('key1' => 'value1', 'key2' => 'value2', etc.);
PHP 코드에서 : $featured
반복되는 연관 배열이며 as $key => $value
, 루프가 실행되고 배열에서 키-값 쌍을 선택할 때마다 키를 $key
루프 블록 내부에서 사용할 로컬 변수 에 저장하고 지역 $value
변수. 따라서 위의 예를 들어 배열의 foreach 루프는 첫 번째 키 - 값 쌍을 도달 할 것이며, 사용자가 지정한 경우 as $key => $value
, 그것을 저장하는 것 'key1'
에 $key
변수 'value1'
에 $value
변수입니다.
$key
루프 블록 내 에서 변수를 사용하지 않기 때문에 변수를 추가하거나 제거해도 루프의 출력이 변경되지 않지만 연관 배열임을 표시하기 위해 키-값 쌍을 포함하는 것이 가장 좋습니다.
또한 as $key => $value
지정은 임의적입니다. 당신은 함께 그것을 대체 할 수있는 as $foo => $bar
당신이 새로운 변수로 루프 블록 내부의 변수 참조를 변경으로 긴으로 잘 작동 것, $foo
하고 $bar
. 그러나 그들을 $key
하고 $value
그 의미를 추적하는 데 도움이됩니다.
다음과 같은 연관 배열이 있다고 가정 해 보겠습니다.
$a = array(
"one" => 1,
"two" => 2,
"three" => 3,
"seventeen" => array('x'=>123)
);
첫 번째 반복에서 : $key="one"
및 $value=1
.
때로는이 키가 필요합니다. 값만 원하면 사용을 피할 수 있습니다.
마지막 반복에서 : $key='seventeen'
및 $value = array('x'=>123)
그래서이의 첫 번째 요소의 값을 얻기 위해 array
값을, 당신은 필요 key
이 경우, X를 : $value['x'] =123
.
이되는 매우 중요한 장소 필수 사용하기 key => value
에 쌍 foreach
루프는 언급 될 것입니다. 배열 의 기존 항목 ( 다른 키에 있음 )에 새 / 하위 요소 를 추가한다고 가정합니다 . 다음을 수행해야합니다.$features
foreach($features as $key => $feature) {
$features[$key]['new_key'] = 'new value';
}
대신 :
foreach($features as $feature) {
$feature['new_key'] = 'new value';
}
여기서 큰 차이점은 첫 번째 경우에는 현재 배열 포인터가 가리키는 요소에 대한 키 를 사용하여 기본 배열 자체를 통해 배열의 하위 값에 액세스한다는 것입니다 .
두 번째 ( 이 목적으로 작동하지 않음 )에서는 배열의 하위 값을 $feature
각 루프 반복 후에 설정되지 않는 임시 변수에 할당합니다 .
차이점은
foreach($featured as $key => $value){
echo $value['name'];
}
$key
키-값 쌍에서 각 반복의 값을 조작 할 수 있습니다. @djiango가 대답했듯이 각 값을 조작하지 않으면 $key
루프의 결과는 다음과 정확히 동일합니다.
foreach($featured as $value) {
echo $value['name']
}
출처 : PHP 문서 에서 읽을 수 있습니다 .
첫 번째 양식은 array_expression으로 지정된 배열을 반복합니다. 각 반복에서 현재 요소의 값>은 $ value에 할당되고 내부 배열 포인터는> 1만큼 전진합니다 (따라서 다음 반복에서 다음 요소를 보게됩니다). *
The second form will additionally assign the current element's key to the $key variable on >each iteration.
If the data you are manipulating is, say, arrays with custom keys, you could print them to screen like so:
$array = ("name" => "Paul", "age" => 23);
foreach($featured as $key => $value){
echo $key . "->" . $value;
}
Should print:
name->Paul
age->23
And you wouldn't be able to do that with a foreach($featured as $value)
with the same ease. So consider the format above a convenient way to manipulate keys when needed.
Cheers
Say you have an array like this:
$array = (0=>'123',1=>'abc','test'=>'hi there!')
In your foreach loop, each loop would be:
$key = 0, $value = '123'
$key = 1, $value = 'abc'
$key = 'test', $value = 'hi there!'
It's great for those times when you need to know the array key.
if the array looks like:
- $featured["fruit"] = "orange";
- $featured["fruit"] = "banana";
- $featured["vegetable"] = "carrot";
the $key will hold the type (fruit or vegetable) for each array value (orange, banana or carrot)
here $key will contain the $key associated with $value in $featured. The difference is that now you have that key.
array("thekey"=>array("name"=>"joe"))
here $value is
array("name"=>"joe")
$key is "thekey"
ReferenceURL : https://stackoverflow.com/questions/18492784/difference-between-as-key-value-and-as-value-in-php-foreach
'program tip' 카테고리의 다른 글
초점에서 자리 표시 자 색상을 변경하는 방법은 무엇입니까? (0) | 2021.01.11 |
---|---|
너겟 패키지의 내용 검토 (0) | 2021.01.11 |
Web API 2에서 CORS 활성화 (0) | 2021.01.11 |
처음 2를 선택하는 방법 (0) | 2021.01.11 |
스팸을 피하기 위해 웹 사이트에 이메일 주소를 표시하는 방법은 무엇입니까? (0) | 2021.01.11 |