2012-12-10 36 views
0

在php中,我似乎遇到了數組問題。我不知道爲什麼,我的數組如何過是這樣的:找回非數組

$elementOptions = array(
     array(
      'type' => 'Text', 
      'name' => 'test' , 
      'isRequired' => true, 
      'attributes' => array(
      'placeholder' => 'content' 
    ), 

     'subFormName' => 'content' 
); 

我有每個循環爲這樣:

foreach ($options as $key => $value) { 
    if (is_array($value)) { 
     //do something else 
    } else { 
     //do something     
    }   
} 

的問題是,如果我做裏面的,如果一個變種轉儲(IsArray的()){}我得到以下回:

array(1) { 
    ["placeholder"]=> 
    string(7) "content" 
} 

array(4) { 
    ["type"]=> 
    string(4) "Text" 
    ["name"]=> 
    string(4) "test" 
    ["isRequired"]=> 
    bool(true) 
    ["attributes"]=> 
    array(1) { 
    ["placeholder"]=> 
    string(7) "content" 
    } 
} 

現在的問題是 - 我不想在VAR轉儲如下:

array(1) { 
    ["placeholder"]=> 
    string(7) "content" 
} 

我不確定,基於上面的「數據結構」,這個'placeholder'=>'content'是如何被認爲是一個數組......在任何情況下,我不希望它作爲數組的一部分var var dumped ....它應該只是該var轉儲回來的第二個數組。

這就是你們進來的地方,爲什麼佔位符在它不應該返回時(TMK--據我所知)。

+4

它被認爲是一個數組因爲它被定義爲一個:''attributes'=> array('placeholder'=>'content'),'它的行爲完全像它應該的那樣,給定了你給它的輸入。 –

+0

如前所述 - 畢竟它是一個數組。你必須添加一個更完整的例子來告訴你爲什麼這樣做。你是否遞歸地調用你的函數? (通過循環$ elementOptions不會測試該元素)..和你的數組定義沒有意義,因爲你至少留下了一個)。 – MatsLindh

+1

穿上error_reporting,你會發現你的數組缺少一個')' –

回答

0

「佔位符」 =>「內容」不被視爲一個數組或回來作爲一個數組,它在陣列中的一對你所謂的「屬性」

array(4) { 
    ["type"]=> 
    string(4) "Text" 
    ["name"]=> 
    string(4) "test" 
    ["isRequired"]=> 
    bool(true) 

    ["attributes"]=> // this is your array 
    array(1) {  // contents of this array are... 
    ["placeholder"]=> // this is a key 
    string(7) "content" // this is a variable 
    }    // array ends 
}