2017-12-30 46 views
1

쿼리의 결과가 이미지의 이름입니다. 모든 이미지 ID에 대한 이미지 이름을 배열에 저장합니다. 이제보기 페이지에서 foreach 루프를 사용하여 이러한 이미지를 표시합니다. 문제는이 배열에서 요소 (이미지의 이름)를 추출 할 수 없다는 것입니다.배열 내부 요소를 추출하는 방법 (몇 개의 배열 안에 있음) foreach 루프를 사용하여 배열을 표시하는 방법

내 배열은 내가 인 print_r를 사용했고이 가지고

Array ([0] => Array ([0] => Array ([picture] => 5a3a13f237715637629.jpeg)) [1] => Array ([0] => Array ([picture] => 5a3b602654cfd527057.jpg))) 

가, 지금은 단지 5a3a13f237715637629.jpeg 값을 추출하고보기 페이지에서 이러한 사용 foreach 루프를 표시 할 수 있습니다. 어떤 도움도 환영합니다.

+0

의 적응입니다. 내 경우에는 불행히도 작동하지 않습니다. – Shantanu

+0

여기에 이미지의 이름이 없습니까? 보기 파일 코드를 표시 할 수 있습니까? – Tpojka

+0

이 어레이를 어떻게 생성합니까? – TimBrownlaw

답변

0

내가 생각할 수있는 가장 간단한 방법은 json 배열을 사용하고 정규식을 사용하여 파일 이름을 추출하는 것입니다. 당신이 다음을 통해 루프 파일 이름의 배열 및 표시 남아 있습니다 : 이런 식으로 일을

preg_match('/\w+.jpeg/', json_encode($array), $matches); 

print_r($matches); 

혜택이 배열의 구조를 알고 있거나 내장 찾을 루프를 통해 갈 필요가 없다는 것입니다 값.

루프 방식을 원할 경우; 이 시도 :

$array = array(
    1 => array(
     'picture' => '5a3a13f237715637629.jpeg'  
    ), 
    2 => array(
     'picture' => 'fnofweofweiofniewof.jpeg'  
    ) 
); 

print_r(search_r($array, 'picture', $results)); 

function search_r($array, $key, &$results) { 

    if (!is_array($array)) { 
     return; 
    } 

    if (isset($array[$key])) { 
     $results[] = $array[$key]; 
    } 

    foreach ($array as $subarray) { 
     search_r($subarray, $key, $results); 
    } 

    return $results; 
} 

이 될 것이다 :

Array 
(
    [0] => 5a3a13f237715637629.jpeg 
    [1] => fnofweofweiofniewof.jpeg 
) 

PS합니다. 이것은 this answer

+0

답변을 병합해야합니다. –