2012-05-24 105 views
-3

是否有到PHP數組轉換從轉換陣列不同格式的PHP

$actions = Array ([visits-visit] => Array ( 
            [0] => index 
            [1] => edit 
            [2] => add 
            [3] => delete 
            [4] => search 
           ) 
     ) 

Array ([visits-visit] => Array (index ,edit ,add ,delete, search)) 

我在第一格式的數組,並需要增加它的簡單和快捷的方式因爲這

$this->allow($_userRole, 'module-contr', array(index ,edit ,add ,delete, search)); 

,當我作出這樣

$this->allow($_userRole, 'module-contr', array($actions)); 

它不被接受,因爲我想。

+11

這兩個數組是相同的。唯一的區別在於第二個鍵由PHP自動分配。 – Jon

+0

我沒有發現在這兩個陣列的任何區別... :) –

+0

你想要什麼? – candyleung

回答

1

這兩個數組本質上是相同的......第一個數組就是它將如何顯示,如果您決定打印出來(例如print_r())。當你定義一個數組IE時。創建具有值的數組已經在它裏面,你會寫這樣的事情 -

$someArr = array(
    'index_of_another_array' => Array ('index' ,'edit' ,'add' ,'delete', 'search') 
); 

基本上你正在創建已經數組有數值指標被他們的外表的順序隱含在...指數元素[0]是字符串index。在指數[1]你有串edit ...在指數[2]你有add ...等等...

另一個要注意的是這條線,你說 -

$this->allow($_userRole, 'module-contr', array($actions)); 

隨着最後一個參數,你實際上做的是在之內傳遞 一個額外的數組!你正在做的是創建一個新的陣列,其第一個元素等於。我想你應該通過傳遞和刪除其他陣列不array($actions)

我希望這茅塞頓開了一點點......

0

應該

$this->allow($_userRole, 'module-contr', $actions['visits-visit']);