Cfpropertylist: Asistencia con el ejemplo

Creado en 17 sept. 2013  ·  3Comentarios  ·  Fuente: TECLIB/CFPropertyList

Busqué tratando de encontrar un ejemplo para extraer un campo seleccionado de una matriz. Puedo extraer campos basados ​​en el nombre de la clave muy bien, sin embargo, tengo un problema para determinar cómo utilizar CFP para extraer un valor de una matriz, usando PHP.

Cualquier ayuda será muy apreciada. Aprecio mucho que la biblioteca haya estado disponible hasta ahora, ¡gracias chicos!

documentation hacktoberfest question

Todos 3 comentarios

Hola,
Creo que no entiendo lo que quiere decir con "extraer un valor de una matriz". Tal vez pueda ayudarte si puedes aclararme tu necesidad.

Si puede hacerlo en función del nombre de la clave, ¿ha intentado usar array_flip para usar valores como claves en su matriz?

Mis disculpas, no lo expliqué bien.

Tenía una matriz de entradas, y luego dentro de cada entrada un conjunto de definiciones, junto con otra matriz. No fue bonito, y probablemente haya mejores formas de hacerlo, pero este fue mi método de resolución:

$root = $plist->getValue(true);
$entries = $root->get('Entries');
foreach ($entries as $entry) {
  $topalias = $entry->get('versions')->getValue();
  foreach ($topalias as $subvalue) {
    $finalvalue = $subvalue->get('versionAliases')->getValue();
  }
  $versionalias = $finalvalue;
}

Las $ versionalias habían sido la entrada que estaba extrayendo de esa matriz de segundo nivel. Una vez más, no es bonito, pero funcionó.

Gracias por la respuesta rápida, y si hay un método más eficiente, me encantaría escucharlo. ¡Gracias!

En la forma actual de la API, no hay un enfoque más eficiente que el que eligió. En términos de trabajar con $plist eso es. Probablemente se podría optimizar el bucle (a menos que realmente desee el último $finalvalue del último $entry ).

Dicho esto, sería posible implementar un enfoque similar al selector de xPath / CSS para navegar dentro de un $plist . Algo que convertiría su bucle anterior en $versionalias = $plist->find('versions:last/versionAliases:last')->getValue();

Estaría feliz de fusionar un PR resolviendo esto;)

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

gingerbeardman picture gingerbeardman  ·  9Comentarios

YannickGagnon picture YannickGagnon  ·  4Comentarios

n8felton picture n8felton  ·  12Comentarios

zrsmith92 picture zrsmith92  ·  5Comentarios

cipherchien picture cipherchien  ·  3Comentarios