简体   繁体   English

PHP重建一个大数组

[英]PHP rebuild a big array

array (size=10)
  'image' => 
    array (size=3)
      0 => string 'BlackLingerie(42).jpg' (length=21)
      1 => string 'BlackLingerie(43).jpg' (length=21)
      2 => string 'BlackLingerie(44).jpg' (length=21)
  'text' => 
    array (size=3)
      0 => string '' (length=0)
      1 => string '' (length=0)
      2 => string '' (length=0)
  'author' => 
    array (size=3)
      0 => string '' (length=0)
      1 => string '' (length=0)
      2 => string '' (length=0)
  'date' => 
    array (size=3)
      0 => string '' (length=0)
      1 => string '' (length=0)
      2 => string '' (length=0)
  'verImage' => 
    array (size=3)
      0 => string 'upload' (length=6)
      1 => string 'upload' (length=6)
      2 => string 'upload' (length=6)
  'imagePicsPath' => 
    array (size=3)
      0 => string 'http://127.0.0.1/develop/mvc/public/images/pics/BlackLingerie(42).jpg'/' (length=77)
      1 => string 'http://127.0.0.1/develop/mvc/public/images/pics/BlackLingerie(43).jpg'/' (length=77)
      2 => string 'http://127.0.0.1/develop/mvc/public/images/pics/BlackLingerie(44).jpg'/' (length=77)
  'imageThumbPath' => 
    array (size=3)
      0 => string 'http://127.0.0.1/develop/mvc/public/images/thumbs/BlackLingerie(42).jpg'/' (length=79)
      1 => string 'http://127.0.0.1/develop/mvc/public/images/thumbs/BlackLingerie(43).jpg'/' (length=79)
      2 => string 'http://127.0.0.1/develop/mvc/public/images/thumbs/BlackLingerie(44).jpg'/' (length=79)
  'imagePath' => 
    array (size=3)
      0 => string 'http://127.0.0.1/develop/mvc/public/images/pics/BlackLingerie(42).jpg'/' (length=77)
      1 => string 'http://127.0.0.1/develop/mvc/public/images/pics/BlackLingerie(43).jpg'/' (length=77)
      2 => string 'http://127.0.0.1/develop/mvc/public/images/pics/BlackLingerie(44).jpg'/' (length=77)
  'imageID' => 
    array (size=3)
      0 => string '0' (length=1)
      1 => string '1' (length=1)
      2 => string '2' (length=1)
  'submitUploadImages' => string 'Ladda upp bilder till databas' (length=29)

Want to rebuild this array to an more useful array. 想要将此数组重建为更有用的数组。 Like this 像这样

array
   ( [image0] (
       'name' => 
       'text' => 
       'author' => 
       'date' => 
       'verImage' => 
       'imagePicsPath' => 
       'imageThumbPath' => 
       'imagePath' => 
       'imageID' => 
      )
      [image1] (
       'name' => 
       'text' => 
       'author' => 
       'date' => 
       'verImage' => 
       'imagePicsPath' => 
       'imageThumbPath' => 
       'imagePath' => 
       'imageID' => 
      )

And so on depending on how many pictures there is, the keys inside the image array holds the values for each image. 依存有多少张图片,图像数组中的键会保存每个图片的值,依此类推。 Like name, path so on. 喜欢的名字,路径等等。 The incoming array is a $_POST that holds multiple form input data. 传入数组是一个$ _POST,其中包含多个表单输入数据。 Need some help to crack this one guys. 需要一些帮助来破解这个家伙。 Need to iterate trough the $_POST array, get the contents and transform to a new array ? 是否需要遍历$ _POST数组,获取内容并转换为新数组?

I want unique image arrays that holds the image information before doing my stuff with the database =) 我需要唯一的图像数组来保存图像信息,然后再对数据库进行处理=)

I haven't tested this but it should work: 我还没有测试过,但它应该可以工作:

$incomingArray = $_POST['array'];
$sortedArray = array();

for($i = 0; $i < count($incomingArray); $i++){
    foreach($incomingArray as $key => $value){
        $sortedArray["image".$i][$key] = $value[i];
    }
}

Doing it this way means you don't have to write $sortedArray["image".$i]['NAME'] = $incomingArray['NAME'][$i] for each image value (name, test, author etc.). 这样做意味着您不必为每个图像值(名称,测试,作者等)编写$sortedArray["image".$i]['NAME'] = $incomingArray['NAME'][$i] )。

Try 尝试

foreach( $array as $1st_level_key => $1st_level_value ) {
    foreach ( $1st_level_value as $2nd_level_key => $2nd_level_value ) {
        $new_array['image'.$2nd_level_key][$1st_level_key] = $2nd_level_value;
    }
}

Short answer yes, pretty much like this: 简短的回答是的,非常像这样:

for($i = 0; $i < count($YourArray); $i++)
{
    $NewArray["image".$i]["name"] = $YourArray["name"][$i];
    ...
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM