2013-03-16 22 views
1

我有一个大小= 1的数组,当我尝试获取当前数组它的返回false,但数组有值。PHP当前()返回false时传递一个有效的数组

$article=getArticle($id); 
    if(is_array($article)) 

    { $article=current($article); } 

getArticle返回多维数组,并且当前的var_dump可以看到数组。 如果var_dump在当前我得到错误。

如果我使用上面的代码(因为数组的大小= 1)

  if(is_array($article)) 
      { 
        foreach($article as $k=>$v) 
       { 
      $article=$v; 
       } 
      } 

它工作没有任何问题

的哪些错误与当前?

请帮

===============编辑========================

这是当前 前的var_dump我有,因为是大文本

array(1) { 
     [529]=> 
     array(14) { 
     ["articles_id"]=> 
     string(3) "529" 
     ["issue"]=> 
     string(3) "161" 
     ["membership_type"]=> 
     string(1) "1" 
     ["el"]=> 
     array(9) { 
      ["title"]=> 
      string(23) "AUTOBIANCHI A112 ABARTH" 
      ["url"]=> 
      string(23) "autobianchi-a112-abarth" 
      ["summary"]=> 
      string(397) " i have remove it 
    " 
      ["content"]=> 
      string(11580) " i have remove it too large 
    " 
      ["meta_keywords"]=> 
      string(23) "AUTOBIANCHI,A112,ABARTH" 
      ["meta_description"]=> 
      string(402) " " 
      ["created"]=> 
      string(10) "1362076380" 
      ["last_updated"]=> 
      string(1) "0" 
      ["status"]=> 
      string(1) "1" 
     } 
     ["categories_id"]=> 
     string(2) "12" 
     ["authors_id"]=> 
     string(2) "16" 
     ["brands_id"]=> 
     string(2) "36" 
     ["models_id"]=> 
     string(3) "206" 
     ["engines_id"]=> 
     string(3) "174" 
     ["o-categories"]=> 
     array(1) { 
      ["values"]=> 
      array(1) { 
      [12]=> 
      array(15) { 
       ["categories_id"]=> 
       string(2) "12" 
       ["object_id"]=> 
       string(1) "1" 
       ["parent_id"]=> 
       string(1) "0" 
       ["path"]=> 
       string(2) "12" 
       ["handler"]=> 
       string(0) "" 
       ["icon"]=> 
       string(0) "" 
       ["tpl"]=> 
       string(12) "articles.php" 
       ["alias"]=> 
       string(1) "0" 
       ["is_nav"]=> 
       string(1) "1" 
       ["pos"]=> 
       string(2) "10" 
       ["depth"]=> 
       string(1) "0" 
       ["cts"]=> 
       string(0) "" 
       ["mts"]=> 
       string(0) "" 
       ["configuration"]=> 
       string(0) "" 
       ["el"]=> 
       array(15) { 
       ["categories_id"]=> 
       string(2) "12" 
       ["lang"]=> 
       string(2) "el" 
       ["category_name"]=> 
       string(13) "Classic" 
       ["sub_title"]=> 
       string(0) "" 
       ["summary"]=> 
       string(0) "" 
       ["image"]=> 
       string(0) "" 
       ["html_code"]=> 
       string(0) "" 
       ["meta_title"]=> 
       string(0) "" 
       ["url"]=> 
       string(13) "classic" 
       ["url_path"]=> 
       string(13) "classic" 
       ["meta_keywords"]=> 
       string(0) "" 
       ["meta_description"]=> 
       string(0) "" 
       ["created"]=> 
       string(10) "1355235888" 
       ["last_updated"]=> 
       string(1) "0" 
       ["status"]=> 
       string(1) "1" 
       } 
      } 
      } 
     } 
     ["o-authors"]=> 
     array(1) { 
      ["values"]=> 
      array(1) { 
      [16]=> 
      array(4) { 
       ["authors_id"]=> 
       string(2) "16" 
       ["object_id"]=> 
       string(2) "26" 
       ["image"]=> 
       string(0) "" 
       ["el"]=> 
       array(9) { 
       ["authors_id"]=> 
       string(2) "16" 
       ["lang"]=> 
       string(2) "el" 
       ["name"]=> 
       string(31) "Last First" 
       ["last_name"]=> 
       string(10) "Last" 
       ["first_name"]=> 
       string(20) "First" 
       ["nick_name"]=> 
       string(0) "" 
       ["created"]=> 
       string(10) "1360567827" 
       ["last_updated"]=> 
       string(1) "0" 
       ["status"]=> 
       string(1) "1" 
       } 
      } 
      } 
     } 
     ["o-brands"]=> 
     array(1) { 
      ["values"]=> 
      array(1) { 
      [36]=> 
      array(6) { 
       ["brands_id"]=> 
       string(2) "36" 
       ["object_id"]=> 
       string(2) "17" 
       ["brand_name"]=> 
       string(11) "AUTOBIANCHI" 
       ["created"]=> 
       string(10) "1363179463" 
       ["last_updated"]=> 
       string(1) "0" 
       ["status"]=> 
       string(1) "1" 
      } 
      } 
     } 
     ["o-models"]=> 
     array(1) { 
      ["values"]=> 
      array(1) { 
      [206]=> 
      array(7) { 
       ["models_id"]=> 
       string(3) "206" 
       ["object_id"]=> 
       string(2) "18" 
       ["brands_id"]=> 
       string(2) "36" 
       ["model_name"]=> 
       string(11) "A112 ABARTH" 
       ["created"]=> 
       string(10) "1363179480" 
       ["last_updated"]=> 
       string(1) "0" 
       ["status"]=> 
       string(1) "1" 
      } 
      } 
     } 
     ["o-engines"]=> 
     array(1) { 
      ["values"]=> 
      array(1) { 
      [174]=> 
      array(6) { 
       ["engines_id"]=> 
       string(3) "174" 
       ["object_id"]=> 
       string(2) "19" 
       ["engine"]=> 
       string(5) "1.050" 
       ["created"]=> 
       string(10) "1363179448" 
       ["last_updated"]=> 
       string(1) "0" 
       ["status"]=> 
       string(1) "1" 
      } 
      } 
     } 
     } 
    } 
+2

你能发表文章的var_dump吗? – 2013-03-16 07:14:36

+0

@Mario:你可以检查我编辑的var_dump Q – ntan 2013-03-16 07:27:35

+0

你可以发布getArticle函数吗? – mintobit 2013-03-16 07:33:32

回答

1

你可以尝试

$article=getArticle($id); 
if (is_array($article)) { 
    $article = reset($article); 
} 

$article=getArticle($id); 
if (is_array($article)) { 
    $article = array_shift($article); 
} 

你可以窥视documentation about resetdocumentation about array_shift

+0

+ 1 array_shift正在工作,但它仍然是不合逻辑的,目前失败 – ntan 2013-03-16 07:48:49

+0

该文档指出'内部指针[...]被初始化为插入到数组中的第一个元素。不知道如何在代码中创建数组,但也许您正在使用不在数组中插入值的函数。 – 2013-03-16 07:56:50

+0

我添加getArtilces之前返回阵列上的重置和工作得很好。谢谢你救了我的一天 – ntan 2013-03-16 08:18:58

1

如果您在getArticle()函数,那么它的内部指针丢失数组复制删除内容及摘要。

我认为这是原因,它返回false。

+0

+1为您的通知和知识,但我会检查如果我复制表,谢谢 – ntan 2013-03-16 07:45:31

相关问题