通过子阵列值对子阵列进行排序?

时间:2016-03-09 18:49:27

标签: php

我只发现了如何使用子数组值对数组进行排序的问题,但我想知道您是否可以使用子数组值对子数组进行排序。

foreach ($el->getArray('plain') as $element){

   foreach ($element as $data)
   {
      <?php echo $data['name']; ?>
      <?php echo $data['value']; ?>
   }
}

我认为最好的解决方案是通过执行实例化$ array:

$array = $el->getArray('plain');
在foreach之前

然后立即对其进行排序,然后循环遍历它。

但是,我不确定您是否可以在数组中对数组进行排序。首先,这是可能的,其次你会怎么做?

1 个答案:

答案 0 :(得分:1)

根据我上面的评论,停止过度思考:

public void DoUpload(DriveInfo sel, IProgress<UploadStep> progress)
{
    // Check that there is a device selected
    if (sel != null)
    {
        progress.Report(new UploadStep { Message = "First Task..." });

        // Generate List of images to upload
        var files = Directory.EnumerateFiles(sel.Name, "*.*", SearchOption.AllDirectories)
            .Where(s => s.EndsWith(".jpeg") || s.EndsWith(".jpg") || s.EndsWith(".png"));

        if (files.Count() > 0)
        {
            // Manage each image
            foreach (string item in files)
            {
                // Generate thumbnail byte array
                Thumbnails.Add(new ByteImage { Image = GenerateThumbnailBinary(item) });
            }

            progress.Report(new UploadStep { Message = "Generated Thumnails..." });

            foreach (string item in files)
            {
                // Generate new name
                Filenames.Add(
                    new NFile
                    {
                        OldName = Path.GetFileNameWithoutExtension(item),
                        NewName = Common.Security.KeyGenerator.GetUniqueKey(32)
                    });
            }

            progress.Report(new UploadStep { Message = "Uplaoding to database..." });
        }
    }
}

注意r / q / p数组现在变成了p / q / r - 它已被排序,即使它是一个嵌套在另一个数组中的数组。