Foreach in foreach + CodeIgniter

时间:2011-01-03 03:43:37

标签: php codeigniter foreach

我的图片上传功能正常,但此图片中需要4张图片。而我目前的功能只是覆盖图像,尽管数字。我想知道如何将(最好)一封信插入我的foreach函数中。

$uploads = array($this->uploads->data());
foreach ( $uploads as $key[] => $value )  
{
$imagename = $cleaned . '-s' . $value['file_ext']; //outputs clean-name-s.ext
}

到说完所有的时候,4张图片都需要这个功能。离开我 clean-name-sa.ext,clean-name-sb.ext,clean-name-sc.ext和clean-name-sd.ext(数字也可以)。

表单确实需要在提交之前填写所有4个字段,因此我是否只需创建一个我想要的标识符数组并创建一个foreach循环,输出4个不同的$ imagenames?或者是否有一种更简单,更合乎逻辑的方法。

2 个答案:

答案 0 :(得分:0)

您的问题有点模糊,因为您没有提供HTML设置的指示。如果你真的想要一个数组,你可以这样做:

$uploads = array($this->uploads->data());
foreach ($uploads as $key => $value) {
   foreach (Array('a', 'b', 'c', 'd') as $letter) {
      $imagename = $cleaned . '-s' . $letter . '.' . $value['file_ext']; //outputs clean-name-sX.ext
      // Do something with $imagename here
   }
}

另请注意,我已将$key[]更改为$key

答案 1 :(得分:0)

我在'清理'部分有点迷失..我不知道你是否包含所有代码或......?

至于覆盖$ imagename - 在你的循环中你不断改变$ imagename的值...所以你需要有一个数组..

至于为名字添加字母..那很容易..只需从97开始'a'然后添加到它...在任何你想要的地方使用chr()(也改为$ imagname到一个数组)

// 97 is asci for 'a'
$currentChar = 97;  
$imagename = array();

$uploads = array($this->uploads->data()); 
foreach ( $uploads as $key => $value )   { 
    $imagename[] = $cleaned . '-s' . chr($currentChar) . $value['file_ext'];
     //outputs clean-name-s.ext 
     $currentChar++;
}