2014-01-30 77 views
0

我有一個數組,它看起來像這裏面一個簡單的PHP數組:訪問數組項中數組名稱相同的PHP

$默認=陣列( 「顏色」 =>「白」, 陣列( 「色」 =>「0000CC」, ) )

問題就變得時,我想打電話給第二顏色項 - 因爲它們都命名一樣,我無法弄清楚如何訪問第二顏色項目在命令行上。下面的命令行代碼不起作用,因爲它只獲取第一個數組中的第一個顏色項。

PHP /Users/me/temp/the_Script/create.php --color =「0000CC」

如何訪問在命令行中第二陣列中的第二顏色項目?我可以在同一個命令行參數中抓住它們嗎?

謝謝!

+0

請提供create.php的完整代碼 –

回答

0

您可以訪問這樣的:

$defaults[0]["color"] 

這是因爲當你創建一個關聯數組他們沒有索引號,所以當你創建默認數組內的第二陣列,PHP賦值給第一個位置。

+0

然後我將如何在命令行中以類似於「php /Users/me/temp/the_Script/create.php --color ='0000CC'」的格式使用它 –

0

在這種特殊情況下

$defaults = array("color" => "White", array("color" => "0000CC",));  
var_dump($defaults[0]['color']); 

但是你最好給它的關聯

$defaults = array("color" => "White", "codes" => array("color" => "0000CC",)); 
var_dump($defaults['codes']['color']); 

您的陣列的總體結構沒有任何意義,我雖然。我不知道這是因爲你只是用它作爲例子,或者你需要重新考慮結構。

+0

我認爲錯過了在我的例子的線之上:$默認=陣列( 「顏色」=> 「白」, 「層」=>數組( 陣列( 「顏色」=> 「0000CC」, ) ) –

+0

在命令行上,我可以說php /Users/me/temp/the_Script/create.php --color ='0000CC',但是,我希望能夠在命令行上更改第二個顏色參數,而不是更改第一個實例 –

+0

嘗試php /Users/me/temp/the_Script/create.php默認值[layers] [color] ='0000CC':請參閱http ://stackoverflow.com/questions/2872755/is-it-possible-to-pass-an-array-as-a-command-line-argument-to-a-php-script – Alwayslearning