si tengo:php: cómo obtener la clave de matriz asociativa del índice numérico?
$array = array('one' =>'value', 'two' => 'value2');
¿Cómo consigo la cadena one
de vuelta de $array[1]
?
si tengo:php: cómo obtener la clave de matriz asociativa del índice numérico?
$array = array('one' =>'value', 'two' => 'value2');
¿Cómo consigo la cadena one
de vuelta de $array[1]
?
que haces. Su matriz no tiene una clave [1]
. Usted podría:
Hacer una nueva matriz, que contiene las claves:
$newArray = array_keys($array);
echo $newArray[0];
Pero el "uno" valor se encuentra en $newArray[0]
, no [1]
.
Un acceso directo sería:
echo current(array_keys($array));
conseguir la primera clave de la matriz:
reset($array);
echo key($array);
Obtener la clave correspondiente al valor "valor":
echo array_search('value', $array);
Todo esto depende de qué es exactamente lo que quiere hacer. El hecho es que [1]
no se corresponde con "uno", ni en qué dirección lo gire.
Hacer una nueva matriz, creo que es la mejor –
$array = array('one' =>'value', 'two' => 'value2');
$allKeys = array_keys($array);
echo $allKeys[0];
Cuál sería:
one
@KennyTM (Resultado: http://www.ideone.com/pFh0o) es un vínculo inactivo –
o no, si lo necesita en un bucle
foreach ($array as $key => $value)
{
echo $key . ':' . $value . "\n";
}
//Result:
//one:value
//two:value2
Hace eco de todas las teclas. Pero topicstarter necesita obtener la clave por índice numérico. No es lo mismo. – pltvs
Estoy muy consciente de eso.Pero dado el hecho de que topicstarter es nuevo para php, esto podría haber sido lo que estaba tratando de lograr y simplemente no sabía de la sintaxis foreach;) – Decko
$array = array('one' =>'value', 'two' => 'value2');
$keys = array_keys($array);
echo $keys[0]; // one
echo $keys[1]; // two
Usted puede hacerlo de esta manera:
function asoccArrayValueWithNumKey(&$arr, $key) {
if (!(count($arr) > $key)) return false;
reset($array);
$aux = -1;
$found = false;
while (($auxKey = key($array)) && !$found) {
$aux++;
$found = ($aux == $key);
}
if ($found) return $array[$auxKey];
else return false;
}
$val = asoccArrayValueWithNumKey($array, 0);
$val = asoccArrayValueWithNumKey($array, 1);
etc...
no tryed el código, pero estoy bastante seguro de que funcionará.
¡Buena suerte!
la función key me ayudó y es muy simple
Por favor, no solo publique una enlazar; podría no funcionar en el futuro. En cambio, amplíe lo que hace la función y cómo usarla. –
Si usted sólo va a trabajar con una clave, en particular, es posible lograr esto con una sola línea sin tener que almacenar una matriz para todas las claves:
echo array_keys($array)[$i];
Ampliando la respuesta de Ram Dane, la función key es una forma alternativa de obtener la clave del índice actual de la matriz. Puede crear la siguiente función,
function get_key($array, $index){
$idx=0;
while($idx!=$index && next($array)) $idx++;
if($idx==$index) return key($array);
else return '';
}
En otras palabras, se trata de devolver la enésima clave de matriz de una matriz asociativa. –