【问题标题】:Get all values from one key in array从数组中的一个键获取所有值
【发布时间】:2014-10-03 01:10:27
【问题描述】:

我想将所有“file_name”值放入一个变量中,以便能够将其作为逗号分隔的字符串保存到我的数据库中。

    array (size=13)
  0 => 
    array (size=14)
      'file_name' => string '__0000132.jpg' (length=13)
      'file_type' => string 'image/jpeg' (length=10)
      'file_path' => string 'C:/wamp/www/mou/uploads/items/' (length=30)
      'full_path' => string 'C:/wamp/www/mou/uploads/items/__0000132.jpg' (length=43)
      'raw_name' => string '__0000132' (length=9)
      'orig_name' => string '__00001.jpg' (length=11)
      'client_name' => string '__00001.jpg' (length=11)
      'file_ext' => string '.jpg' (length=4)
      'file_size' => float 2.16
      'is_image' => boolean true
      'image_width' => int 300
      'image_height' => int 300
      'image_type' => string 'jpeg' (length=4)
      'image_size_str' => string 'width="300" height="300"' (length=24)
  1 => 
    array (size=14)
      'file_name' => string '0132.jpg' (length=8)
      'file_type' => string 'image/jpeg' (length=10)
      'file_path' => string 'C:/wamp/www/mou/uploads/items/' (length=30)
      'full_path' => string 'C:/wamp/www/mou/uploads/items/0132.jpg' (length=38)
      'raw_name' => string '0132' (length=4)
      'orig_name' => string '01.jpg' (length=6)
      'client_name' => string '01.jpg' (length=6)
      'file_ext' => string '.jpg' (length=4)
      'file_size' => float 271.2
      'is_image' => boolean true
      'image_width' => int 580
      'image_height' => int 714
      'image_type' => string 'jpeg' (length=4)
      'image_size_str' => string 'width="580" height="714"' (length=24)
  2 => 
    array (size=14)
      'file_name' => string 'CM_logo32.png' (length=13)
      'file_type' => string 'image/png' (length=9)
      'file_path' => string 'C:/wamp/www/mou/uploads/items/' (length=30)
      'full_path' => string 'C:/wamp/www/mou/uploads/items/CM_logo32.png' (length=43)
      'raw_name' => string 'CM_logo32' (length=9)
      'orig_name' => string 'CM_logo.png' (length=11)
      'client_name' => string 'CM_logo.png' (length=11)
      'file_ext' => string '.png' (length=4)
      'file_size' => float 24.61
      'is_image' => boolean true
      'image_width' => int 393
      'image_height' => int 404
      'image_type' => string 'png' (length=3)
      'image_size_str' => string 'width="393" height="404"' (length=24)
  3 => 
    array (size=14)
      'file_name' => string 'download32.png' (length=14)
      'file_type' => string 'image/png' (length=9)
      'file_path' => string 'C:/wamp/www/mou/uploads/items/' (length=30)
      'full_path' => string 'C:/wamp/www/mou/uploads/items/download32.png' (length=44)
      'raw_name' => string 'download32' (length=10)
      'orig_name' => string 'download.png' (length=12)
      'client_name' => string 'download.png' (length=12)
      'file_ext' => string '.png' (length=4)
      'file_size' => float 33.18
      'is_image' => boolean true
      'image_width' => int 160
      'image_height' => int 120
      'image_type' => string 'png' (length=3)
      'image_size_str' => string 'width="160" height="120"' (length=24)

我正在使用 codeigniter,这是我的库从 $this->upload->get_multi_upload_data() 返回的内容;图书馆 ->> https://github.com/stvnthomas/CodeIgniter-Multi-Upload

任何帮助将不胜感激

【问题讨论】:

    标签: php arrays codeigniter multidimensional-array image-upload


    【解决方案1】:

    如果你的 PHP >= 5.5,你可以使用array_column()

    $results = array_column($myArray, 'file_name');
    

    对于早期版本的PHP,可以使用

    $results = array_map(
        function ($value) {
            return $value['file_name'];
        }
        $myArray
    );
    

    但是在数据库中保存为逗号分隔的字符串并不是一个好的建议:它几乎无法搜索(您不能使用索引进行搜索,所以它是一个完整的扫描)并且它也变得非常难以修改

    【讨论】:

    • 如何使用 array_map 为每个设置一个键?
    • 您不能设置密钥,PHP 将使用原始数组中的密钥。为什么需要设置密钥?
    • 我用 json_encode ["DSC_348410.jpg","IMAGE_NAME11.jpg","dry-cleaning11.png","tube_map11.gif","0110.jpg","fb_header10.jpg ","dslr.center_logo_10.png"] 但希望它作为 php 数组返回
    • 你到底想要什么?请编辑您的原始问题以显示 exactly 在获取文件名列表后您希望 PHP 数组的外观.....这是您第一次'甚至提到了 json,所以感觉好像你要求的东西已经改变了
    【解决方案2】:

    我发现了它是什么。

    基本上少了一个逗号。

     $fileData =$this->upload->get_multi_upload_data();
        $results = array_map(
            function ($fileData) {
                return $fileData['file_name'];
            },
            $fileData
        );
    

    返回来自 Codeigniter 库 https://github.com/stvnthomas/CodeIgniter-Multi-Upload 的文件名数组

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-31
      • 2017-08-07
      • 1970-01-01
      相关资源
      最近更新 更多