2017-12-30 37 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し、regexを使ってファイル名を抽出することです。あなたはその後、ループスルーにファイル名の配列と表示が残されています。このようにそれを行うための

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

回答をマージする必要があります。 –

関連する問題