각각의 PHP에서 "as $key => $value"와 "as $value"의 차이
데이터베이스에 전화가 왔는데 무슨 일인지 알아내려고 합니다.$key => $value
을 하는 것은foreach
리고리고▁loop..
제가 질문하는 이유는 이 두 코드가 같은 것을 출력하기 때문입니다, 그래서 저는 그것이 왜 이런 식으로 쓰여지는지 이해하려고 노력하고 있습니다.코드는 다음과 같습니다.
의 용도에 각용별도별$key => $value
foreach($featured as $key => $value){
echo $value['name'];
}
이 출력은 다음과 같습니다.
는 각용에한함도한만 사용합니다.$value
foreach($featured as $value) {
echo $value['name'];
}
그래서 제 질문은, 무엇이 다른가 하는 것입니다.$key => $value
아니면 그냥$value
에 시대에foreach
인데 차이가 왜 프를 통과해야 . 배열이 다차원적입니다. 만약 그게 차이를 만든다면, 저는 단지 왜 통과해야 하는지 알고 싶습니다.$key
$value
에 시대에foreach
루우프
음, 그.$key => $value
에서 키-값 는 0,와 을 합니다. 여기서 키는 0,1,2,...와 같은 숫자 대신 값을 결정하는 인덱스 역할을 합니다.다음과 .
$featured = array('key1' => 'value1', 'key2' => 'value2', etc.);
코드: PHP 코에서:$featured
이며, 루되는연배니다입열상입니다.as $key => $value
루가실값배키행서열 -쌍을선택때마로컬다키다저에니장합에 키를 저장한다는 입니다.$key
을 합니다.$value
변수.따라서 위의 예제 배열의 경우 각 루프에 대한 값이 첫 번째 키-값 쌍에 도달합니다. 그리고 지정한 경우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']
}
첫 번째 형식은 array_expression에서 지정한 배열을 루프합니다.각 반복에서 현재 요소의 값 >은 $value에 할당되고 내부 배열 포인터는 >1만큼 전진합니다(따라서 다음 반복에서는 다음 요소를 보게 됩니다).*
두 번째 양식은 각 반복에서 현재 요소의 키를 >의 $key 변수에 추가로 할당합니다.
조작 중인 데이터가 사용자 지정 키가 있는 어레이인 경우 다음과 같이 화면에 인쇄할 수 있습니다.
$array = ("name" => "Paul", "age" => 23);
foreach($featured as $key => $value){
echo $key . "->" . $value;
}
인쇄 대상:
name->Paul
age->23
그리고 당신은 그것을 할 수 없을 것입니다.foreach($featured as $value)
의 형식은 하게 키를 할 수 .따라서 위의 형식을 고려하면 필요할 때 편리하게 키를 조작할 수 있습니다.
건배.
다음과 같은 어레이가 있다고 가정합니다.
$array = (0=>'123',1=>'abc','test'=>'hi there!')
각 루프에서 각 루프는 다음과 같습니다.
$key = 0, $value = '123'
$key = 1, $value = 'abc'
$key = 'test', $value = 'hi there!'
배열 키를 알아야 하는 경우에 적합합니다.
샘플 배열: 왼쪽이 키이고 오른쪽이 내 값입니다.
$array = array(
'key-1' => 'value-1',
'key-2' => 'value-2',
'key-3' => 'value-3',
);
A: "A: 다▁values▁the니합원▁only▁want▁example▁a예▁i$array
foreach($array as $value) {
echo $value; // Through $value I get first access to 'value-1' then 'value-2' and to 'value-3'
}
B: 나는 의 B: 값키원합다니의 각 .$array
foreach($array as $key => $value) {
echo $value; // Through $value I get first access to 'value-1' then 'value-2' and to 'value-3'
echo $key; // Through $key I get access to 'key-1' then 'key-2' and finally 'key-3'
echo $array[$key]; // Accessing the value through $key = Same output as echo $value;
$array[$key] = $value + 1; // Exmaple usage of $key: Change the value by increasing it by 1
}
배열이 다음과 같은 경우:
- $440["과일"] = "과일";
- $440["과일"] = "과일";
- $176["filename"] = "filename";
$키는 각 배열 값(당근, 바나나 또는 당근)에 대한 유형(과일 또는 야채)을 보유합니다.
여기서 $key는 $209의 $value와 연결된 $key를 포함합니다.차이점은 이제 당신이 그 열쇠를 가지고 있다는 것입니다.
array("thekey"=>array("name"=>"joe"))
여기서 $value는
array("name"=>"joe")
$key는 "key"입니다.
foreach($details as $key =>$values){
if($values['created_by'] != $user->id && $values['created_by'] != ''){
unset($details[$key]);
}
}
언급URL : https://stackoverflow.com/questions/18492784/difference-between-as-key-value-and-as-value-in-php-foreach
'programing' 카테고리의 다른 글
ESLint - '프로세스'가 정의되지 않았습니다. (0) | 2023.08.19 |
---|---|
Oracle에서 열이 가상인지 확인하는 방법은 무엇입니까? (0) | 2023.08.19 |
키에 특정 문자열이 포함된 python 사전의 항목 필터링 (0) | 2023.08.19 |
du in PowerShell? (0) | 2023.08.19 |
java 속성 파일하나의 속성에 여러 줄 사용 (0) | 2023.08.19 |