2014-09-08 3 views
1

아래 예제를 나열했습니다. 내가 필요로하는 것은 $ key가 루프 동안 배열의 실제 인덱스 번호 (위치)를 반환하는 대신 Array를 반환하는 것입니다. 단일 코드 배열이 주어지면 동일한 코드가 제대로 작동하지만 아래 예제에서는 그렇지 않습니다. foreach 루프 및 다중 - 희미한 배열의 PHP 배열 키 문제

주어진 :

$ 스크린 샷 만 이상의 항목에 다음과 유사 할 것이다.

Array 
(
    [0] => Array 
     (
      [screenshot_id] => 871 
      [image_filename] => DSCF0124.JPG 
     ) 

) 

PHP :

//build in clause & binding using selected array from above 
$prefix = $in_clause = ''; 
$binding_clause = array(); 
foreach($screenshots as $key) 
{ 
    $in_clause .= $prefix.':selected_'.$key; 
    $prefix = ', '; 
    $binding_clause[':selected_'.$key] = $key['screenshot_id']; 
} 

RESULT : 기대 값

$inclause = :selected_Array 

$binding_clause = 

Array 
(
    [:selected_Array] => 871 
) 

:

$inclause = :selected_0 

$binding_clause = 

Array 
(
    [:selected_0] => 871 
) 
,536,

답변

2

그냥 전화하기 때문에 $key 키가 아닙니다. 키와 값 (내부 배열)이 필요합니다.

foreach($screenshots as $key => $value) 
{ 
    $in_clause .= $prefix.':selected_'.$key; 
    $prefix = ', '; 
    $binding_clause[':selected_'.$key] = $value['screenshot_id']; 
} 
1

KEY와 VALUE를 원한다고 말하면됩니다. 이 같은

: 당신은 키와 값을 얻을 것이다

foreach($screenshots as $key=>$screenShot) 

.

1

당신은 그냥 키를 캐스팅하기 위해 foreach 문을 변경해야하고, 예를 들어, $val 배열 요소에 액세스 할 수 있습니다 동안

foreach($screenshots as $key => $val) 

지금 키가 $key 변수에 값 $key['screenshot_id']

당신은 할 수 있습니다 문서 사례 확인 here