2011-11-01 1 views
0

Comment pourrais-je faire quelque chose comme çautilisant gamme dans le tableau

$ranges = array(
    range(34, 37) => 'Group A', 
    range(38, 39) => 'Group B', 
    range(40, 41) => 'Group C', 
); 

foreach($ranges as $range_key => $range_value) { 
    echo "K: ".$range_key." V: ".$range_value."\n"; 
} 

je reçois

Attention: Illegal type offset

+0

Y a-t-il une raison pour laquelle vous ne faites pas array ('Group A' => range (34, 37)) etc? –

+0

oui cela me donne un tableau multidimensionnel et je cherchais à peupler juste un tableau –

Répondre

4

range() retourne un tableau qui ne peut pas être utilisé comme clé de tableau. Vous aurez besoin d'utiliser chaque valeur dans le tableau retourné comme une clé, comme ceci:

foreach (range(34, 37) as $value) { 
    $ranges[$value] = 'Group A'; 
} 
foreach (range(38, 39) as $value) { 
    $ranges[$value] = 'Group B'; 
} 
foreach (range(40, 41) as $value) { 
    $ranges[$value] = 'Group C'; 
} 
+0

juste fait moi-même +1 –

0

Je pense que vous avez les vôtres clés et des valeurs en arrière

$ranges = array(
    'Group A' => range(34, 37), 
    'Group B' => range(38, 39), 
    'Group C' => range(40, 41), 
); 

foreach($ranges as $range_key => $range_value) { 
    echo "K: ".$range_key." V: "; 
    print_r($range_value) 
    echo "\n"; 
} 
1
function make_range($first, $last, $value, &$data_array) 
{ 
    if ($last < $first) return; 

    for($index = $last; $index >= $first; --$index) 
    $data_array[ $index ] = $value; 

    ksort($data_array, SORT_NUMERIC); 
} 
1

peut-être que cela aiderait

$ranges = array_fill(34, 37, 'Group A'); 
print_r($ranges);