1

size = 1の配列があり、現在の配列を取得しようとするとfalseが返されますが、配列には値があります。

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

    { $article=current($article); }

getArticleは多次元配列を返し、現在の前のvar_dumpが配列を表示できる場合。現在の後にvar_dumpを実行すると、falseになります。

上記のコードを使用する場合(配列サイズ= 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"
            }
          }
        }
      }
    }
4

2 に答える 2

1

getArticle()関数で配列をコピーすると、その内部ポインタは失われます。

これが理由だと思います、それはfalseを返します。

于 2013-03-16T07:30:24.310 に答える
1

やってみませんか

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

また

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

リセットに関するドキュメントとarray_shiftに関するドキュメントを調べることができます。

于 2013-03-16T07:39:14.013 に答える