2016-12-19 1 views
0

HTTP経由で画像をアップロードすると、次の配列が得られます。降順で画像のサイズでソートするにはどうしたらよいですか?最大のサイズの画像は最初にアップロードされ、最後にサイズが小さくなります。その結果、サイズで多次元配列をソートする値

Array 
(
    "name" => Array 
     (
      [0] => 1.jpg 
      [1] => 2.jpg 
      [2] => 3.jpg 
     ) 

    ["type"] => Array 
     (
      [0] => image/jpeg 
      [1] => image/jpeg 
      [2] => image/jpeg 
     ) 

    ["tmp_name"] => Array 
     (
      [0] => e7d31fc0 
      [1] => qsdf0sdf 
      [2] => s0sdfsfs 
     ) 

    ["error"] => Array 
     (
      [0] => 0 
      [1] => 0 
      [2] => 0 
     ) 

    ["size"] => Array 
     (
      [0] => 20000 
      [1] => 30000 
      [2] => 40000 
     ) 
) 

次のように、出力は次のようになります。

Array 
(
    "name" => Array 
     (
      [0] => 3.jpg 
      [1] => 2.jpg 
      [2] => 1.jpg 
     ) 

    ["type"] => Array 
     (
      [0] => image/jpeg 
      [1] => image/jpeg 
      [2] => image/jpeg 
     ) 

    ["tmp_name"] => Array 
     (
      [0] => s0sdfsfs 
      [1] => qsdf0sdf 
      [2] => e7d31fc0 
     ) 

    ["error"] => Array 
     (
      [0] => 0 
      [1] => 0 
      [2] => 0 
     ) 

    ["size"] => Array 
     (
      [0] => 40000 
      [1] => 30000 
      [2] => 20000 
     ) 
) 
+0

私はそれを取る '$ _FILES'からだと?通常、ファイルがすでにアップロードされていることを意味します... – Darren

+0

はい。既にアップロードされていますが、私のディレクトリに移動されていません – Ulugbek

答えて

1

私はあなたがforeachループでこれらのファイルを処理します、と仮定します。

次のコードはどうですか?セリムマフムードの答えに基づいて

//get files in array 
$files = $_FILES['formFieldName']; 
$sizes = $files['size']; 
arsort($sizes); //sort in descending order but will preserve the keys 
foreach ($sizes as $key => $size) { 
    $fileName = $files['name'][$key]; 
    $fileSize = $size; 
    $fileType = $files['type'][$key]; 
    $fileTmpName = $files['tmp_name'][$key]; 
    $fileError = $files['error'][$key]; 
} 
0

、私は解決策を解く:

$files = $_FILES['formFieldName']; 
$sizes = $files['size']; 
arsort($sizes); //sort in descending order but will preserve the keys 
$files2 = array(); 
$i = 0; 
foreach ($sizes as $key => $size) { 
    $files2['name'][$i] = $files['name'][$key]; 
    $files2['type'][$i] = $files['type'][$key]; 
    $files2['tmp_name'][$i] = $files['tmp_name'][$key]; 
    $files2['error'][$i] = $files['error'][$key]; 
    $files2['size'][$i] = $size; 
    $i++; 
}