說我有一個名爲a的數組。PHP數組錯誤
$a = array(1=>'one',2=>'two');
和另一個數組$ B
$b = array(a => $a); This doesnt work while,
$b = array(a => array(1=>'one',2=>'two')); works.
說我有一個名爲a的數組。PHP數組錯誤
$a = array(1=>'one',2=>'two');
和另一個數組$ B
$b = array(a => $a); This doesnt work while,
$b = array(a => array(1=>'one',2=>'two')); works.
附上鑰匙報價是這樣的:
$b = array('a' => $a);
A key may be either an integer or a string.如果該鍵是一個字符串,它必須用引號括起來,這你的代碼丟失了。
見固定的代碼在行動here工作。
只是測試它它應該工作,在鏈路
無法複製看看。這兩個例子的「工作」對我來說,在這個意義上,他們產生的數據結構:
Array
(
[a] => Array
(
[1] => one
[2] => two
)
)
然而,你不應該使用a
爲裸字,也就是說,它應該是:
$b = array('a' => $a);
可能在您的實際代碼中,這會造成您的麻煩;我不能肯定地說,因爲你製作的例子實際上並沒有產生失敗。
爲了調試始終設置error_reporting(E_ALL);
。在你的情況下,顯示它不工作的原因。
你必須引用a
=>'a'
。
雖然shamittomar是正確的,你應該用引號括起來的字符串數組的索引,PHP奇蹟般地變成未定義的常量(你的字符串不帶引號)轉換爲字符串,它創建了一個警告,但仍然運行代碼。我試過http://writecodeonline.com/php/上的所有例子,它們工作的很好!
'$ B =陣列( '一個'=> $一個);`應該工作;字符串數組鍵必須用引號引起來 – acm 2011-01-24 17:16:30
無法重現。第一個發出一個通知「使用未定義的常量 - 假設'a'」,但它工作。但是,您應該像使用其他人提到的那樣使用字符串(引號中的文本))。 – KingCrunch 2011-01-24 17:18:36