2011-07-10 154 views
-2

我试图从数组中拆分图像名称。拆分数组

$this->_filenames[]= array($name); 
$files = explode(",", $name); 

当我做一个var_dump$files它返回存储在阵列中两个图像,如下所示:

array 
    0 => string 'felton300.jpg' (length=13) 
1 
array 
    0 => string 'felton400.jpg' (length=13) 
1 

如果我尝试使用存储每个元件(使用下面的代码)的阵列中的list()我收到一条错误消息。

list($img1,$img2) = $files; 

的错误是:Undefined offset: 1

我从形式上传的图片,并希望使用变量(即$ IMG1)作为参考插入到一个MySQL数据库。这是我上传图片的代码。

public function move($overwrite = false) { 
$field = current($this->_uploaded); 
if(is_array($field['name'])){ 
foreach($field['name'] as $number => $filename){ 

//处理多个上传

$this->_renamed = false; 
$this->processFile($filename,$field['error'][$number], 
$field['size'][$number], 
$field['type'][$number],$field['tmp_name'][$number], 
$overwrite); 
} 
} else { 
$this->processFile($field['name'],$field['error'], 
$field['size'],$field['type'],$field['tmp_name'],$overwrite); 
} 
} 

protected function processFile($filename,$error,$size, $type,$tmp_name,$overwrite){ 
$OK = $this->checkError($filename,$error); 
if ($OK) { 
$sizeOK = $this->checkSize($filename, $size); 
$typeOK = $this->checkType($filename, $type); 
if ($sizeOK && $typeOK) { 
$name = $this->checkName($filename, $overwrite); 

$success = move_uploaded_file($tmp_name, $this->_destination . $name); 
if ($success) { 

//经修正的文件名添加到文件名的阵列

$this->_filenames[]= array($name); 

//分裂数组* ** THIS IS在哪里我想分割阵列,因此我可以在MYSQL表中存储图像。这个表有3列ID,图像1,图像2 * ** * **

$files = explode(",", $name); 
var_dump($files); 
+1

什么编程语言?什么样的标签“进入”? –

+0

您至少应该在将来使用语言标记您的帖子。我假设PHP? – citelao

+0

是的,它是PHP。 – paynod

回答

0

如果同一阵列中两个图像,为什么不

INSERT INTO table (id, image1, image2) VALUES ({$id}, '{$files[0]}', '{$files[1]}') 

何必分裂他们?

而且从这个

array 
    0 => string 'felton300.jpg' (length=13) 
1 
array 
    0 => string 'felton400.jpg' (length=13) 
1 

看起来你有一个多维数组这里(注意每一个具有为0的关键)。很难告诉你提供什么,但

INSERT INTO table (id, image1, image2) VALUES ({$id}, '{$files[0][0]}', '{$files[0][1]}') 

也可能是你的解决方案。

+0

对不起,我是PHP新手,因此向更广泛的社区解释我想要的内容并不总是那么简单。为了我的appologise。 是的,它是一个多维数组,如上所述。我尝试了你的建议,但它只是插入了字符串'$ files [0] [0]'和'$ files [0] [1]',而不是实际的文件名。 – paynod

+0

尝试concratingating'mysql_query(“INSERT INTO table(id,image1,image2)VALUES({$ id},'”。$ files [0] [0]。“','”。$ files [0] [1] 。'')“);'' –

+0

不幸的是我得到了同样的结果。它只是插入字符串而不是元素。 – paynod