2013-10-25 116 views
0

我與S3庫工作在這裏找到:http://undesigned.org.za/2007/10/22/amazon-s3-php-class/提取數據的多維數組

它的偉大工程,但我有一個艱難的時間提取我從返回數組結果所需要的數據。我抓住了桶內容,並返回如下內容:

Array (
    [sample_mpeg4.mp4] => Array (
     [name] => sample_mpeg4.mp4 
     [time] => 1378922417 
     [size] => 245779 
     [hash] => dc77a8de8c091c19d86df74eb7 
    ) 
    [steve.jpg] => Array (
     [name] => steve.jpg 
     [time] => 1381270899 
     [size] => 61109 
     [hash] => a008368bf58515775c45e75c54 
    ) 
    [stev-small-photo1.png] => Array (
     [name] => stev-small-photo1.png 
     [time] => 1381270891 
     [size] => 680353 
     [hash] => ddcb22a103d4fa8360083ad70a 
    ) 
) 

好的,很酷。我正在查詢和匹配關鍵字,以提取特定媒體的具體信息。我的代碼如下所示:

 $searchVar = "steve.jpg"; 

     $s3 = new S3(awsAccessKey, awsSecretKey); 
     $bucket_contents = $s3->getBucket("uploads.bucket.com"); 

    //fetch array of current files 
     $searchAssetsBucket = array_keys($bucket_contents); 

     foreach ($searchAssetsBucket as $value) { 
      if($value == $searchVar) { 
       echo $value['time']; 
      } 
     } 

     if(empty($returnValue)) { 
      $returnValue = "Sorry no results for <b>$searchVar</b>."; 
     } 

這對我不起作用。我真正想要做的就是讓代碼在匹配後從[steve.jpg]數組中返回名稱/時間/大小/散列值。我不確定我在這裏做錯了什麼,但是這段代碼只是返回「s」。

有沒有人有任何想法?我真的在這裏失去...

回答

1

我會做這樣的事情:

$myArray=$yourOriginalS3Array; 
$searchVar='Steve.jpg'; 

// set up default/blank data in $matchedArr 
foreach ($myArray as $key => $val) 
{ 
    if($key == $searchVar) { 
    $matchedArr=$val; 
    } 
} 

echo "The name is ".$matchedArr['name']." and the size is ".$matchedArr['size']."<br>"; 

這樣,你正在檢查你的原始數組的鍵,如果匹配,返回一個數組匹配原始數組的第二級,可以在代碼中輕鬆訪問。