arrays PHP son diferentes de los objetos py que:
- teclas PHP pueden ser números enteros o cadenas (asociativos),
- Cuando un valor se añade a una matriz, una tecla numérica es automáticamente asignado antes añadiendo el par clave/valor a la matriz. La clave asociada asignado tiene un valor entero que es igual a la máxima de claves de índice iterador numérico interno de la matriz más 1,
- claves enteras numéricos en cadena están fundidas en enteros,
- El orden de inserción a la matriz se conserva . los pares clave/valor son iterados de acuerdo con el orden de inserción de las claves. Podemos utilizar OrderedDict de Python para emular,
- PHP
array[] = 5
se traduce a Python array.append(5)
o array[None] = 5
,
- Las claves de índice iterador se manipulan a través de PHP funciones incorporadas, o se pasan por referencia, con una copia en escribir política.
Me gustaría dar un enchufe a mi recién lanzado producto pyx.php
módulo de Python. Hay una clase Python array
en el módulo que emula una matriz PHP. Nuestra emulación de Python de la matriz de PHP utiliza una variable de instancia OrderedDict, donde array._obj es una OrderedDic para almacenar todos los elementos de la matriz y realizar un seguimiento de sus órdenes de inserción utilizando una instancia de puntero personalizado variable.Pruebe:
$ 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()
funciona para la matriz con diferentes 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()
en el módulo pyx.php
Cython ofrece casi todo lo que una matriz PHP() ofrece, además de muchos más métodos. Consulte https://wordpy.com/pyx/php/.
Actualmente, pyx.php
sólo está disponible para Python 3.x corriendo Linux de 64 bits. Python 2.x, Mac u otras plataformas se pueden compilar cuando hay muchas solicitudes .