2011-06-20 7 views
1

est ici la solution générique J'utilise:PHP: comment créer un tableau associatif, numérique-associatif; comment puis-je rechercher l'index par lui-même?

http://codepad.viper-7.com/2tiPvN


$j=0; 
$paper = array('copier' => "Copier and Multipurpose", 
       'inkjet' => "Injet Printer", 
       'laser' => "Laser Printer", 
       'photo' => "Photo Paper"); 

foreach ($paper as $index => $description) 
{ 
    echo "$j, $index: $description
"; $j++; }

Je veux avoir des identificateurs numériques et des identificateurs de mots clés.

Pendant ce temps, parce que foreach ($ papier que la description $) donne la description et

foreach ($paper as $index => $description) 

donne l'index et la description ..., est-il un moyen d'obtenir que l'indice dans un foreach, sans avoir à spécifier une variable pour la description?

Répondre

2

ne sais pas ce que vous voulez dire, mais peut-être

foreach(array_keys($ary) as $key)... 
+0

Il semble que l'index devienne une valeur numérique et la description devient l'index. Alors, comment puis-je obtenir la description? –

+0

Même récit: 'array_values' renvoie uniquement les valeurs (' description') dans un tableau indexé numériquement. –

1

Oui, avec array_keys():

$indexes = array_keys($paper); 

Voir: http://php.net/function.array-keys

+0

Est-il possible d'obtenir la clé de tableau, l'index et la description dans une seule boucle foreach? http://codepad.viper-7.com/rNYeil –

+0

la clé de tableau et l'index sont la même chose. Je ne comprends pas ta question. – Alp

+0

Une clé de tableau numérique. Pardon. –

1
foreach ($paper as $key => $description) { ... } 

est la syntaxe pour obtenir la clé et la valeur dans la boucle.

En ce qui concerne la saisie du tableau avec des valeurs numériques et textuelles, les tableaux de PHP ne le supportent pas vraiment. Mais rien ne dit que vous ne pouvez pas dupliquer les valeurs en interne:

$array = (
    0 => 'Copier and ...', 
    'copier' => 'Copier and ...' 
    ... 
); 

Notez que cette version, foreach retournera les deux versions. Vous auriez à faire une boucle régulière for ($i = 0; .....) { } pour attraper seulement les clés numériques.

1
foreach(array_keys($ary) as $key)... its give index 

array['0']=>'copier' 
array['1']=> 'inkjet' 
      array['2']=>  'laser' 
       array['3']=>'photo' 
similarly for values 
foreach(array_values($ary) as $value)... 
Questions connexes