【问题标题】:How to Change Array Format in PHP如何在 PHP 中更改数组格式
【发布时间】:2013-11-25 11:01:10
【问题描述】:

我想改变我的数组格式

Array
(
    [profileImg] => Array
        (
            [name] => Array
                (
                    [0] => index.jpg
                    [1] => index1.jpg
                )

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

            [tmp_name] => Array
                (
                    [0] => D:\xampp\tmp\php714F.tmp
                    [1] => D:\xampp\tmp\php714F.tmp
                )

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

            [size] => Array
                (
                    [0] => 13543
                    [1] => 23543
                )

        )

)

array(
    [name] => index.jpg,
    [type] => image/jpeg,
    [tmp_name] => D:\xampp\tmp\php714F.tmp,
    [error] => 0,
    [size] => 13543
)

array(
    [name] => index1.jpg,
    [type] => image/jpeg,
    [tmp_name] => D:\xampp\tmp\php714F.tmp,
    [error] => 0,
    [size] => 23543
)

我从我的表单中得到这个

<input name="profileImg[]" type="file" />

任何帮助将不胜感激,谢谢

【问题讨论】:

  • 你已经尝试了什么?
  • 我尝试使用 foreach 但找不到路。

标签: php arrays format resultset


【解决方案1】:

这就是你想要的。

<?php

$result = array();
foreach ($list['profileImg'] as $key => $keyList)
{
    foreach ($keyList as $index => $value)
    {
        $result[$index][$key] = $value;
    }
}
print_r($result);

【讨论】:

  • 没有绿色勾号就可以正常工作。 :(。
  • 嘿 Srain,这将是你和 Ben 之间的偏见,因为没有人投票给他,而且他在你之前回答了一点点。
  • 啊哈! ^_^,你真好。
【解决方案2】:

这应该可行。

$result = [];
foreach($_FILES['profileImg'] as $k => $d){
 foreach($d as $key => $val){
   $result[$key][$k] = $d[$key];
  }
}

print_r($result); 返回,

Array
(
    [0] => Array
        (
            [name] => index.jpg
            [type] => image/jpeg
            [tmp_name] => D:\xampp\tmp\php714F.tmp
            [error] => 0
            [size] => 13543
        )

    [1] => Array
        (
            [name] => index1.jpg
            [type] => image/jpeg
            [tmp_name] => D:\xampp\tmp\php714F.tmp
            [error] => 0
            [size] => 23543
        )

)

【讨论】:

  • 你的代码有一些错误,但经过一些更正后它工作得很好,谢谢 Ben。
  • 这是正确的语法,从 PHP 5.4 开始。 As of PHP 5.4 you can also use the short array syntax, which replaces array() with []. 如果您使用的是旧版本,则只需将其替换为 array()
  • 我正在使用最新版本,我知道该怎么做。只需通知您和其他访客。无论如何,谢谢。
【解决方案3】:
$result = array();
foreach ($_FILES['profileImg'] as $name => $data) {
    foreach ($data as $key => $item) {
        $result[$key][$name] = $item;
    }
}

应该可以解决问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-08-18
    • 1970-01-01
    • 2011-09-01
    • 1970-01-01
    • 2019-04-10
    • 2014-05-03
    • 2021-12-10
    • 2016-08-23
    相关资源
    最近更新 更多