En php ¿cómo puedo acceder a los valores de una matriz sin usar corchetes alrededor de la clave? Mi problema particular es que quiero acceder a los elementos de una matriz devuelta por una función. La función Say (args) devuelve una matriz. ¿Por qué $ var = function (args) [0]; gritándome acerca de los corchetes? ¿Puedo hacer algo como $ var = function (args) .value (0); o me estoy perdiendo algo muy básico?accediendo a valores de matriz sin corchetes en php
Respuesta
Como los otros han dicho, que bastante tienen que utilizar una variable temporal:
$temp = myFunction();
$value = $temp[0];
Pero, si conocer la estructura de la matriz que se devuelve es posible evitar la variable temporal.
Si lo que desea es el primer miembro:
$value = reset(myFunction());
Si desea que el último miembro:
$value = end(myFunction());
Si desea cualquiera de entre:
// second member
list(, $value) = myFunction();
// third
list(, , $value) = myFunction();
// or if you want more than one:
list(, , $thirdVar, , $fifth) = myFunction();
¡Ey, listo! 'list()' nunca deja de sorprenderme. +1. –
reset() y end() requieren que los argumentos sean referencias. Recibe un aviso de E_STRICT en versiones recientes de php. – goat
sí, he estado haciendo esto con variables temporales, pero me preguntaba si realmente lo necesitaba. ahora solo me pregunto por qué tengo que hacerlo. pero en cualquier caso, el uso de list() es bastante ingenioso. ¡Gracias! – amb
En PHP, al conseguir una matriz como resultado de la función, que por desgracia tiene que hacer un paso adicional:
$temp_array = function($args);
$var = $temp_array[0];
Para los objetos, esto se ha relajado en PHP 5. Se puede hacer:
$echo function($args)->property;
(siempre function
devuelve un objeto, por supuesto.)
Apesta, pero esta es la única forma de hacerlo. Una de las muchas razones para odiar PHP. –
@Luke cierto, pero no * que * malo imo. Quién sabe, puede arreglarse en PHP 7 :) –
@Luke - eso es un poco fuerte ¿no? – nickf
function getKey($array, $key){
return $array[$key];
}
$var = getKey(myFunc(args), $key);
no hay manera de hacerlo esto sin agregar una función de usuario desafortunadamente. Simplemente no es parte de la sintaxis.
Siempre se puede simplemente hacerlo de la manera antigua
$array = myFunc();
$value = $array[0];
¿Qué es exactamente coincide con su expectativa es:
echo pos(array_slice($a=myFunc(), pos(array_keys(array_keys($a), 'NameOfKey'));
respondió Kinetix Kin, Taipei
si desea que este, probablemente lo mejor sea regresarán un objeto (por desgracia, su php totalmente cojo no soporte este). Aquí está una manera loca yo era capaz de averiguar, sin embargo, de la novedad (por favor no hacer esto!):
function returnsArray(){
return array("foo" => "bar");
}
echo json_decode(json_encode((object)returnsArray()))->foo;
//prints 'bar'
Así yeah..until que añaden soporte para la eliminación de referencias matriz en PHP, creo que es probable que sólo debe convertir la matriz de retorno como un objeto:
return (object)array("foo" => "bar");
y entonces usted puede hacer returnsArray() -> foo, a partir de PHP relaja eliminación de referencias a objetos, pero no la viste .. o, por supuesto, escribir función de contenedor, como otros han sugerido.
también, parece que el soporte para esto se ha agregado recientemente a php? http://wiki.php.net/rfc/functionarraydereferencing – mutexkid
- 1. Cómo imprimir una matriz Numpy sin corchetes?
- 2. Imprimir matriz sin corchetes y comas
- 3. Accediendo a valores de matriz usando la clave de matriz de Twig
- 4. Llenar matriz con valores sin bucle en PHP
- 5. Accediendo a Mysql con JQuery sin usar php
- 6. Php empujando valores a una matriz bidimensional
- 7. Mostrar valores de matriz en PHP
- 8. claves de matriz PHP valores
- 9. ¿Cómo convertir valores de matriz a minúsculas en PHP?
- 10. PHP manipular matriz multidimensional valores
- 11. PHP matriz multidimensional obtener valores
- 12. Agregue 2 valores a 1 clave en una matriz PHP
- 13. Agregar valores a una matriz asociativa en PHP
- 14. valores de matriz de resta de PHP
- 15. php array_merge sin borrar valores?
- 16. PHP: Matriz a valores de parámetros de función variable
- 17. glob() de PHP en directorios entre corchetes
- 18. PHP - Los valores duplicados de una matriz
- 19. Eliminar valores cero a partir de una matriz PHP
- 20. PHP - cuenta valores de matriz específicos
- 21. PHP matriz - Extracción de valores vacíos
- 22. Accediendo matrices dentro de matrices En PHP
- 23. Accediendo a propiedades de una matriz de objetos
- 24. Java: ¿Imprimir LinkedList sin corchetes?
- 25. find_by_sql en Rails, accediendo a la matriz resultante
- 26. Accediendo a valores de píxel OpenCV 2.3 - C++
- 27. PHP: establezca todos los valores en una matriz en algo
- 28. Adición de valores a una C# matriz
- 29. ¡Accediendo a una matriz con un número negativo!
- 30. valores de copia matriz para las claves en PHP
php se refiere a esto como referencia de matriz de funciones. Se ha incluido en php desde la versión 5.4 http://php.net/manual/en/migration54.new-features.php – Steve