with - php陣列操作




PHP關聯數組是否已訂購? (2)

PHP關聯數組(以及數字數組) 是有序的 ,PHP提供各種函數來處理數組鍵排序,如uksort()krsort()krsort()

此外,PHP允許您使用數字鍵無序地聲明數組:

$a = array(3 => 'three', 1 => 'one', 2 => 'two');
print_r($a);

Array
(
    [3] => three
    [1] => one
    [2] => two
)
// Sort into numeric order
ksort($a);
print_r($a);
Array
(
    [1] => one
    [2] => two
    [3] => three
)

http://php.net/manual/en/language.types.array.php

PHP中的數組實際上是一個有序的映射 。 映射是將值與鍵關聯的類型。 此類型針對多種不同用途進行了優化; 它可以被視為數組,列表(向量),哈希表(地圖的實現),字典,集合,堆棧,隊列,甚至更多。 由於數組值可以是其他數組,因此樹和多維數組也是可能的。

我來自python背景,類似的python數據類型(字典)是一組無序的鍵值對。

我想知道PHP關聯數組是否是無序的? 它們似乎是訂購的。

$test = array(
  'test' => 'test',
  'bar' => 'bar',
);

var_dump($test);    

var_dump(array_slice($test, 0, 1));

測試總是在bar之前,我可以按照你的看到切片。 所以這總是保證在PHP版本之間訂購? 訂單是我聲明數組的順序嗎? 那麼有什麼內部指向'test'將[0]放在數組中? 我已經閱讀了http://php.net/manual/en/language.types.array.php但它沒有對這個問題有太多了解。 感謝您的回复。 泰






dictionary