[英]PHP Version 5.3 vs Version 5.6 and above
據我了解,PHP 5.6及更高版本支持對數組使用[](方括號)。 我有一個正常運行的代碼:
$sortedMainCatArray[$letter][] = $eachMainCategory;
在PHP 5.6版上運行良好。 該代碼本質上的作用是使用預設鍵將數組值推入$ sortedMainCatArray中。 (例如a / b / c)使用print_r時,結果看起來像這樣。
Array
(
[A] => Array
(
[0] => Array
(
[mainCatID] => 33
[mainCatDesc] => Alternative Medicine
[mainCatAddedDate] => 2017-12-18 10:35:31
[mainCatStatus] => active
)
[1] => Array
(
[mainCatID] => 32
[mainCatDesc] => Anesthesiology
[mainCatAddedDate] => 2017-12-18 10:29:48
[mainCatStatus] => active
)
)
[B] => Array
(
[0] => Array
(
[mainCatID] => 1
[mainCatDesc] => Blood & Infection
[mainCatAddedDate] => 2017-12-18 10:29:28
[mainCatStatus] => active
)
)
)
但是,由於PHP版本5.3不支持使用[](方括號),因此我必須修改代碼。 我所擁有的是:
$sortedMainCatArray[$letter] = array($eachMainCategory);
但是,這僅導致每個字母數組僅具有一個值。 可以在下面看到一個示例,其中在“ A”類別下,只有一個值(麻醉學)而不是兩個值(替代醫學和麻醉學)。
Array
(
[A] => Array
(
[0] => Array
(
[mainCatID] => 32
[mainCatDesc] => Anesthesiology
[mainCatAddedDate] => 2017-12-18 10:29:48
[mainCatStatus] => active
)
)
[B] => Array
(
[0] => Array
(
[mainCatID] => 1
[mainCatDesc] => Blood & Infection
[mainCatAddedDate] => 2017-12-18 10:29:28
[mainCatStatus] => active
)
)
)
在不使用[]括號的情況下,如何才能修改我的代碼以使其在5.3版的PHP上工作呢? 感謝所有給予的幫助! 謝謝!
短數組語法在5.4中引入 。 但是你誤會了。 對於文字聲明,此方法支持[]
而不是array()
語法。
但是,語法
$array[$index][] = $someVar;
與短數組語法無關。 自PHP誕生以來,它一直有效。 您也可以在舊版本中使用此語法。
當代碼更改為
$sortedMainCatArray[$letter] = array($eachMainCategory);
它基本上說不要在主數組的$ letter索引處創建子數組(多次調用此行會導致子array($eachMainCategory)
中有多個元素),而是將array($eachMainCategory)
分配給該索引(多次調用此行assign同一數組多次指向該索引)。 總結一下,離開
$sortedMainCatArray[$letter][] = $eachMainCategory;
對於兩個PHP版本都可以。
更新
當函數返回某個數組時,在特定索引處訪問數組元素稱為array dereferencing support
並且在5.4中也添加了該數組元素,因此該functionThatReturnsArray()[$index]
允許的一個內襯functionThatReturnsArray()[$index]
只能在兩個表達式中完成(在5.4之前的PHP版本中,如PHP手冊示例部分所示:
// on PHP 5.4
$secondElement = getArray()[1];
// previously
$tmp = getArray();
$secondElement = $tmp[1];
您應該能夠使用array_push() :
array_push($sortedMainCatArray[$letter], $eachMainCategory);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.