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!
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;)