2010-08-04 10 views
13

Esta es una matriz tengoeco clave y el valor de una matriz sin y con bucle

<?php 
$page['Home']='index.html'; 
$page['Service']='services.html'; 
?> 

¿Cómo puedo obtener hacerse eco de algo como esto para el individuo una como

Home is at index.html 

y otra vez cómo ¿Puedo hacer esto a través de un bucle y repetir todo?

+0

ver [ 'foreach'] (http://php.net/foreach). – Artefacto

+1

http://www.google.de/search?q=php+loop+array y http://www.php.net/manual/en/language.control-structures.php. Leer documentación ayuda mucho. –

Respuesta

45
foreach($page as $key => $value) { 
    echo "$key is at $value"; 
} 

Para la versión 'sin lazo', solo preguntaré "¿por qué?"

+1

Esto está bien ... solo quería saber si es posible obtener un valor individualmente refiriéndolo a 0, 1, etc. ... Acabo de comenzar con estos productos. ¡¡Muchas gracias!! – esafwan

+2

que es una cosa muy común en realidad, para abordar un conjunto de elementos de forma individual. –

+0

Oh, bien. Entendí tu pregunta como 'cómo hacer eco de todos los elementos clave-valor de una matriz sin usar un bucle' - lo cual sería una tontería hacer en mi humilde opinión (a menos que use array_walk como lo hizo KennyTM). – Mchl

2
function displayArrayValue($array,$key) { 
    if (array_key_exists($key,$array)) echo "$key is at ".$array[$key]; 
} 

displayArrayValue($page, "Service"); 
4

para la primera pregunta

$key = 'Home'; 
echo $key." is at ".$page[$key]; 
+0

simple y claro. – Boris

9

Sin un bucle, sólo para las patadas de ella ...


Usted puede convertir la matriz a una no-asociativo , haciendo:

$page = array_values($page); 

Y el n acessing cada elemento por el que es a base de cero índice:

echo $page[0]; // 'index.html' 
echo $page[1]; // 'services.html' 

O puede usar una versión ligeramente más complicado:

$value = array_slice($page, 0, 1); 

echo key($value); // Home 
echo current($value); // index.html 

$value = array_slice($page, 1, 1); 

echo key($value); // Service 
echo current($value); // services.html 
+0

Buena respuesta para 'array_values' – Thamaraiselvam

2

eco de teclas y el valor de una matriz sin y con bucle

$array = array(
      'kk6NFKK'=>'name', 
      'nnbDDD'=>'claGg', 
      'nnbDDD'=>'kaoOPOP', 
      'nnbDDD'=>'JWIDE4', 
      'nnbDDD'=>'lopO' 
     ); 


print_r(each($array)); 

salida

Array 
(
    [1] => name 
    [value] => name 
    [0] => kk6NFKK 
    [key] => kk6NFKK 
) 
0

Cómo eco de valor de clave y de una matriz sin y con bucle

$keys = array_keys($page); 
implode(',',$keys); 
echo $keys[0].' is at '.$page['Home']; 
0

Una función recursiva para un cambio;) lo uso para emitir la información de medios para videos etc elementos de que pueden utilizar matriz anidada/atributos.

function custom_print_array($arr = array()) { 
    $output = ''; 
    foreach($arr as $key => $val) { 
     if(is_array($val)){ 
      $output .= '<li><strong>' . ucwords(str_replace('_',' ', $key)) . ':</strong><ul class="children">' . custom_print_array($val) . '</ul>' . '</li>'; 
     } 
     else { 
      $output .= '<li><strong>' . ucwords(str_replace('_',' ', $key)) . ':</strong> ' . $val . '</li>'; 
     } 
    } 
    return $output; 

}

Cuestiones relacionadas