2016-08-16 4 views
0

많은 게시물을 읽었으며 내 문제의 해결책을 찾을 수 없었습니다. PHP 배열, foreach 루프 내에서 키를 대체하십시오.

나는 "물", $_POST['Water']라는 $_POST 배열을 가지고 있으며 그 내용은 다음과 같습니다

[Water] => Array ([0] => 55.0 [1] => 22) 

$key이 이름을 사용할 수 있도록 foreach 루프 내부의 게시물의 이름을 사용하는 것이 가능 "물 ":

foreach($_POST['Water'] as $key => $val) { 
    $fields[] = "$field = '$val'"; 
    //echo "Key: $key, Value: $val<br/>\n"; 
} 

시간 내 주셔서 감사합니다.

+0

그래서 값을 키로 사용 하시겠습니까? 그게 네가 여기서 묻고있는거야? –

+0

@Jay Patel, 아니요 이미 값을 사용하고 있습니다. 내가하려는 것은 $ _POST 이름 "물"을 사용하여 키가 "물 [0]과"물 [1]처럼 보일 것입니다. – DCJones

+0

$ fields [ 'Water'] [$ key] = $ val;'또는 $ fields [ 'Water'. $ key] = $ val; ' – JustOnUnderMillions

답변

2

아니요. foreach()은 배열의 내용에 대해 작동합니다. 실제로 그 배열을 포함하고있는 모든 것은 foreach의 관점에서 벗어납니다. 동적 다른 곳 Water 키를 사용하려면, 당신은 자신을해야 할 것이다 :

$key = 'Water' 
foreach($_POST[$key] as $val) { 
    $fields[] = "$key = '$val'"; 
} 
+0

선생님과 같을 것입니다. 이 문제를 조사해 주신 모든 분들께 감사드립니다. Marc B가 작동합니다. – DCJones

0

난 당신이 기본적으로 foreach 내부 $field='water' 할이 권리를 읽는다면. 이는 우리가 구축 한 방식을 다시 생각해 볼 수 있습니다 foreach.

필드 값을 변수로 만들고 값이 필요한 모든 곳에서 사용해야합니다.

$field = 'Water'; 
foreach($_POST[$field] as $key => $val) { 
    $fields[] = "$field = '$val'"; 
    //echo "Key: $key, Value: $val<br/>\n"; 
} 

이 방법의 장점은 당신이 당신의 마음을 변경하고 $ _POST 키가 나중에 호출 될 경우, "액체"하나 개의 라인을 편집 할 필요가 있고 그 모든 것입니다. 또한 foreach이 함수 $ 필드의 일부인 경우 함수 매개 변수가 될 수 있습니다. 로터리 방식으로, 당신은 실제로 코드 재사용 원칙에 꽤 가깝게 접근하고 있습니다.