获取数组中的数组值

时间:2013-05-21 09:27:34

标签: php

对此不确定,希望你能帮我解决这个问题......

这是我的代码

Loader::library('file/types');
    $ih = Loader::helper('image');
    $names = explode("||",$this->tName);
    $urls = explode("||",$this->tUrl);
    $fIDs = explode("||",$this->fID);

    Loader::model('file');
    $i = Loader::helper('image');

    $v = array();
    $cc = 0;

    foreach ($names as $k=>$n){
      if (intval($fIDs[$k]) > 0 ) :
        $img = $test = File::getByID($fIDs[$k]);
        $fv = $img->getExtension();
        $ft = FileTypeList::getType($fv);
        $img = $ft->type == 1 ?  $img : false;  
      else :
        $img = false;
      endif;
    $v[$cc]['name']         = $n;
    $v[$cc]['url']          = $urls;
    $v[$cc]['src']          = $img ? $ih->getThumbnail($img,100,100)->src : false;
    $cc ++;
    }
    return $v;

我遇到的问题是在此代码中从$ urls获取数组值。 (最后一个)

foreach ($names as $k=>$n){
      if (intval($fIDs[$k]) > 0 ) :
        $img = $test = File::getByID($fIDs[$k]);
        $fv = $img->getExtension();
        $ft = FileTypeList::getType($fv);
        $img = $ft->type == 1 ?  $img : false;  
      else :
        $img = false;
      endif;
    $v[$cc]['name']         = $n;
    $v[$cc]['url']          = $urls;
    $v[$cc]['src']          = $img ? $ih->getThumbnail($img,100,100)->src : false;
    $cc ++;
    }
    return $v;

感谢您的帮助。欣赏它。

2 个答案:

答案 0 :(得分:0)

我认为你必须做这样的事情:

$i = 0;

foreach ($names as $k=>$n){
  if (intval($fIDs[$k]) > 0 ) :
    $img = $test = File::getByID($fIDs[$k]);
    $fv = $img->getExtension();
    $ft = FileTypeList::getType($fv);
    $img = $ft->type == 1 ?  $img : false;  
  else :
    $img = false;
  endif;
$v[$cc]['name']         = $n;
$v[$cc]['url']          = $urls[$i]; //changed
$v[$cc]['src']          = $img ? $ih->getThumbnail($img,100,100)->src : false;
$cc ++;
$i++; //changed
}
return $v;

答案 1 :(得分:0)

由于使用$ k作为索引循环遍历names数组,因此可以使用相同的索引访问匹配的url。因此,您可以将行更改为:

$v[$k]['url'] = $urls[$k];

没有必要使用$ cc变量跟踪索引,因为$ k已经表示names数组中的当前索引。您已经以相同的方式访问fIDs数组(使用$ k)。