web-dev-qa-db-fra.com

clé d'écho et valeur d'un tableau sans et avec boucle

Ceci est un tableau que j'ai

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

Comment puis-je faire écho à quelque chose comme ça pour un individu comme

Home is at index.html

et encore une fois, comment puis-je faire cela à travers une boucle et écho à tous?

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

Pour la version "sans boucle", je demanderai simplement "pourquoi?"

61
Mchl

Sans boucle, rien que pour le coup ...


Vous pouvez soit convertir le tableau en un tableau non associatif, en effectuant:

$page = array_values($page);

Et puis accéder à chaque élément par son index de base zéro:

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

Ou vous pouvez utiliser une version légèrement plus compliquée:

$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
11
Alix Axel

Si vous ne devez pas utiliser de boucle (pourquoi?), vous pouvez utiliser array_walk ,

function printer($v, $k) {
   echo "$k is at $v\n";
}

array_walk($page, "printer");

Voir http://www.ideone.com/aV5X6 .

7
kennytm

pour la première question

$key = 'Home';
echo $key." is at ".$page[$key];
5
Your Common Sense

Touche d'écho et valeur d'un tableau sans et avec boucle

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


print_r(each($array));  

Sortie

Array
(
    [1] => name
    [value] => name
    [0] => kk6NFKK
    [key] => kk6NFKK
)
4
avi
function displayArrayValue($array,$key) {
   if (array_key_exists($key,$array)) echo "$key is at ".$array[$key];
}

displayArrayValue($page, "Service"); 
3
Mark Baker

Comment faire écho à la clé et à la valeur d'un tableau sans et avec boucle

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

Une fonction récursive pour un changement;) Je l'utilise pour sortir les informations sur le média pour les vidéos etc.

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;

}

0
Shivanand Sharma

Ma version sans boucle ressemblerait à ceci:

echo implode(
    "\n", 
    array_map(
         function ($k, $v) { 
             return "$k is at $v"; 
         }, 
         array_keys($page), 
         array_values($page)
    )
);
0
Karol Samborski