Есть ли в PHP упорядоченный словарь, например, в Python ? То есть каждая пара ключ-значение дополнительно имеет порядковый номер, связанный с ней.
Вот так PHP-массивы работают из коробки. Каждая пара ключ / значение имеет порядковый номер, поэтому порядок вставки запоминается. Вы можете легко проверить это самостоятельно:
http://ideone.com/sXfeI
Если я правильно понимаю описание в документации по Python, тогда да. Массивы PHP на самом деле являются только упорядоченными картами:
Массив в PHP на самом деле является упорядоченной картой. Карта - это тип, который связывает значения с ключами. Этот тип оптимизирован для нескольких различных применений; его можно рассматривать как массив, список (вектор), хеш-таблицу (реализацию карты), словарь, коллекцию, стек, очередь и, возможно, больше. Поскольку значения массивов могут быть другими массивами, деревья и многомерные массивы также возможны.
PHP Array docs
PHP-массивы работают таким образом по умолчанию.
$arr = array('one' => 1, 'two' => 2, 'three' => 3, 'four' => 4); var_dump($arr); // 1, 2, 3, 4 unset($arr['three']); var_dump($arr); // 1, 2, 4 $arr['five'] = 5; var_dump($arr); // 1, 2, 4, 5