array PHP sono diversi dagli oggetti py che:
- chiavi PHP possono essere interi o stringhe (associativi),
- Quando un valore viene aggiunto a una matrice, un tasto numerico è automaticamente assegnato prima aggiunta della coppia chiave/valore all'array. La chiave associata assegnato ha un valore intero che è uguale al massimo di chiavi indice iteratori numerico interne della matrice più 1,
- chiavi intere numerici nella stringa vengono colate in numeri interi,
- L'ordine di inserimento alla matrice è conservato . le coppie chiave/valore sono iterate in base all'ordine di inserimento delle chiavi. Possiamo usare OrderedDict di Python per emulare,
- PHP
array[] = 5
è tradotto in Python array.append(5)
o array[None] = 5
,
- Le chiavi di indice iteratore vengono manipolati tramite PHP funzioni built-in, o vengono passati per riferimento, con una copia su scrivere la politica.
Mi piacerebbe dare una spina al mio nuovo prodotto pyx.php
modulo Python. Esiste una classe Python array
nel modulo che emula un array PHP. La nostra emulazione Python dell'array PHP utilizza una variabile di istanza OrderedDict, dove array._obj è un OrderedDic per memorizzare tutti gli elementi dell'array e tiene traccia dei propri ordini di inserimento utilizzando una variabile di istanza del puntatore personalizzata .Prova:
$ git clone https://github.com/wordpy/pyx/
$ python # or ipython`
>>> import pyx.php as Php; array = Php.array
>>> arr1 = array((0,'1-0'),('a','1-a'),('b','1-b'),)
>>> arr2 = array((0,'2-0'),( 1,'2-1'),('b','2-b'),('c','2-c'),)
>>> arr1 + arr2 # same as: Php.array_plus(arr1, arr2), see below
>>> Php.array_merge(arr1, arr2)
>>> import pyx.php as Php; array = Php.array
>>> Arr0 = array() # Arr0._obj is an empty OrderedDict()
>>> Arr1 = array(('a',11), 'zzz', (99,99), 22, 33, (2,22))
>>> Arr1
array(6) {
['a']=> <int> 11
[0]=> <str> zzz
[99]=> <int> 99
[100]=> <int> 22
[101]=> <int> 33
[2]=> <int> 22
}
zip()
lavori per array con diversi len !!!
>>> for i,j in zip(array(1,2,3,4), array(11,22,33)):
... print(i,j)
1 11
2 22
3 33
>>> for i,j in zip(array(1,2), array(11,22,33)):
... print(i,j)
1 11
2 22
array()
nel modulo pyx.php
Cython offre quasi tutto ciò che un array PHP() offre, oltre a molti altri metodi. Vedere https://wordpy.com/pyx/php/.
Attualmente, pyx.php
è disponibile solo per Python 3.x in esecuzione su Linux a 64 bit. Python 2.x, Mac o altre piattaforme possono essere compilate quando ci sono molte richieste .