2012-04-27 18 views
0

私はチェックボックス付きのHTMLフォームを持っています。誰かがチェックボックスを1つ以上選択し、削除ボタンを押すと、データベースからファイル参照を削除し、Amazon S3からファイルを削除します。これは私がすべてのチェックボックスを見つけるために使用したコードです複数のphp配列を作成

$checkbox_select = JRequest::getVar('checkboxselect', '', 'POST'); //just a Joomla way of doing a $_POST with extra security 
var_dump($checkbox_select); //this returns: array(2) { ["video_1.mp4"]=> string(2) "on" ["video_2.mp4"]=> string(2) "on" ["video_3.mp4"]=> string(2) "on"} 

// Localize and sanitize each individual value 
foreach (array_keys($checkbox_select) as $element) { 
    $deleteNames[] = $db->quote($element); 
} 
var_dump($deleteNames); //array(3) { [0]=> string(13) "'video_3.mp4'" [1]=> string(13) "'video_2.mp4'" [2]=> string(13) "'video_1.mp4'" } 

私の問題はAmazon S3と複数のファイルの削除にあります。私はS3の削除を配置する必要がありますフォーマットは非常に紛らわしいです:

限り、私は理解して
$s3->delete_objects('mybucket', array(

'objects' => array(// accepts a *list* of one or more *hashes* 

    // a *hash* that contains a "key" key with a value, and maybe a "version_id" key with a value 
    array('key' => 'object (file) name'), 

    // a second hash representing a file 
    // a third hash representing a file 
    // and so on... 
), 
)); 

(S3 delete_objects関数から)最後の関連する配列は、実際のキー値としてkeyを持っています。最後var_dumpで、私は今、私はちょうどこの形式で配列の束にその配列を変換する必要がアレイ内のすべてのビデオの名前を持っている:

array ('key' => 'video_1.mp4'), 
array ('key' => 'video_2.mp4'), 
array ('key' => 'video_3.mp4'), 
...and so on 

どのように私はこれらの配列を作成することができますか?私は最初のvar_dumpを使っているのでしょうか(私は両方ともビデオファイル名がリストされています)?前もって感謝します。

答えて

0

foreachを使用すると、アレイをループして新しいアレイを目的のフォーマットで作成できます。

例:

<?php 

foreach (array_keys($checkbox_select) as $element) { 
    $deleteNames[] = array('key' => $db->quote($element)); 
} 

未テスト、エラー

を含んでいてもよいです
関連する問題