programing

각각의 PHP에서 "as $key => $value"와 "as $value"의 차이

batch 2023. 8. 19. 09:58
반응형

각각의 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']
}

출처: PHP 설명서에서 읽을 수 있습니다.

첫 번째 형식은 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

반응형