Reputation: 61
I create an multidimensionnal array in php. I want to get all questions designation. When I try to watch my data, I don't get all questions...
<?php
$questions = array(
'question' => array(
'designignation' => 'Souhaitez-vous pouvoir contrôler votre bateau ?',
'info' => '',
'Packs' => array(
'PackMini' => array(
'description' => 'Pack contrôle Basique',
'c' => array(
'b7' => '1',
'b9' => '1'
),
'm' => array(
'b7' => '1',
'b9' => '1'
)
),
'PackTotal' => array(
'description' => 'Pack contrôle Complet',
'50' => array(
'c' => array(
'b9' => '3'
),
'm' => array(
'b9' => '2'
)
),
'55' => array(
'c' => array(
'b9' => '3'
),
'm' => array(
'b9' => '2'
)
),
'60' => array(
'c' => array(
'b9' => '6'
),
'm' => array(
'b9' => '4'
)
)
)
)
),
'question' => array(
'designignation' => 'Souhaitez-vous contrôler les lumières?',
'info' => '',
'Packs' => array(
'PackMini' => array(
'description' => 'Pack lumière basique',
'c' => array(
'bE' => '2'
),
'm' => array(
'bE' => '2'
)
),
'PackTotal' => array(
'description' => 'Pack lumière Complet Intérieur & Exterieur',
'35' => array(
'c' => array(
'bE' => '8'
),
'm' => array(
'bE' => '5'
)
),
'40' => array(
'c' => array(
'bE' => '9'
),
'm' => array(
'bE' => '6'
)
),
'45' => array(
'c' => array(
'bE' => '11'
),
'm' => array(
'bE' => '7'
)
),
'50' => array(
'c' => array(
'bE' => '12'
),
'm' => array(
'bE' => '8'
)
),
'55' => array(
'c' => array(
'bE' => '14'
),
'm' => array(
'bE' => '9'
)
),
'60' => array(
'c' => array(
'bE' => '15'
),
'm' => array(
'bE' => '10'
)
)
)
)
),
'question' => array(
'designignation' => 'Souhaitez-vous plus de confort à bord?',
'info' => 'Mesure de tempêratires, humidité',
'Packs' => array(
'PackMini' => array(
'description' => 'Pack mesure basique',
'c' => array(
'b7' => '1'
),
'm' => array(
'b7' => '1'
)
),
'PackTotal' => array(
'description' => 'Pack mesure Complet',
'35' => array(
'c' => array(
'b7' => '3'
),
'm' => array(
'b7' => '2'
)
),
'40' => array(
'c' => array(
'b7' => '5'
),
'm' => array(
'b7' => '3'
)
),
'45' => array(
'c' => array(
'b7' => '5'
),
'm' => array(
'b7' => '3'
)
),
'50' => array(
'c' => array(
'b7' => '6'
),
'm' => array(
'b7' => '4'
)
),
'55' => array(
'c' => array(
'b7' => '6'
),
'm' => array(
'b7' => '4'
)
),
'60' => array(
'c' => array(
'b7' => '8'
),
'm' => array(
'b7' => '5'
)
)
)
)
),
'question' => array(
'designignation' => 'Souhaitez-vous plus de sécurité à bord?',
'info' => '',
'Packs' => array(
'PackMini' => array(
'description' => 'Pack sécurité intérieur basique',
'c' => array(
'b7' => '1'
),
'm' => array(
'b7' => '1'
)
),
'PackTotal' => array(
'description' => 'Pack sécurité interieur Complet',
'35' => array(
'c' => array(
'b7' => '2'
),
'm' => array(
'b7' => '1'
)
),
'40' => array(
'c' => array(
'b7' => '2'
),
'm' => array(
'b7' => '1'
)
),
'45' => array(
'c' => array(
'b7' => '2'
),
'm' => array(
'b7' => '1'
)
),
'50' => array(
'c' => array(
'b7' => '3'
),
'm' => array(
'b7' => '2'
)
),
'55' => array(
'c' => array(
'b7' => '3'
),
'm' => array(
'b7' => '2'
)
),
'60' => array(
'c' => array(
'b7' => '3'
),
'm' => array(
'b7' => '2'
)
)
)
)
),
'question' => array(
'designignation' => 'Souhaitez-vous plus de sécurité à l\'éxterieur?',
'info' => '',
'Packs' => array(
'PackMini' => array(
'description' => 'Pack sécurité éxterieur basique',
'c' => array(
'b7' => '1'
),
'm' => array(
'b7' => '1'
)
),
'PackTotal' => array(
'description' => 'Pack sécurité éxterieur Complet',
'35' => array(
'c' => array(
'b7' => '6'
),
'm' => array(
'b7' => '4'
)
),
'40' => array(
'c' => array(
'b7' => '6'
),
'm' => array(
'b7' => '4'
)
),
'45' => array(
'c' => array(
'b7' => '6'
),
'm' => array(
'b7' => '4'
)
),
'50' => array(
'c' => array(
'b7' => '6'
),
'm' => array(
'b7' => '4'
)
),
'55' => array(
'c' => array(
'b7' => '6'
),
'm' => array(
'b7' => '4'
)
),
'60' => array(
'c' => array(
'b7' => '6'
),
'm' => array(
'b7' => '4'
)
)
)
)
)
);
for($i = 0; $i < count($questions); $i++){
var_dump($questions['question']);
}
?>
I only get few last questions from my array and not the first :
<?php
array(3) {
["designignation"]=>
string(50) "Souhaitez-vous plus de sécurité à l'éxterieur?"
["info"]=>
string(0) ""
["Packs"]=>
array(2) {
["PackMini"]=>
array(3) {
["description"]=>
string(34) "Pack sécurité éxterieur basique"
["c"]=>
array(1) {
["b7"]=>
string(1) "1"
}
["m"]=>
array(1) {
["b7"]=>
string(1) "1"
}
}
["PackTotal"]=>
array(7) {
["description"]=>
string(34) "Pack sécurité éxterieur Complet"
[35]=>
array(2) {
["c"]=>
array(1) {
["b7"]=>
string(1) "6"
}
["m"]=>
array(1) {
["b7"]=>
string(1) "4"
}
}
[40]=>
array(2) {
["c"]=>
array(1) {
["b7"]=>
string(1) "6"
}
["m"]=>
array(1) {
["b7"]=>
string(1) "4"
}
}
[45]=>
array(2) {
["c"]=>
array(1) {
["b7"]=>
string(1) "6"
}
["m"]=>
array(1) {
["b7"]=>
string(1) "4"
}
}
[50]=>
array(2) {
["c"]=>
array(1) {
["b7"]=>
string(1) "6"
}
["m"]=>
array(1) {
["b7"]=>
string(1) "4"
}
}
[55]=>
array(2) {
["c"]=>
array(1) {
["b7"]=>
string(1) "6"
}
["m"]=>
array(1) {
["b7"]=>
string(1) "4"
}
}
[60]=>
array(2) {
["c"]=>
array(1) {
["b7"]=>
string(1) "6"
}
["m"]=>
array(1) {
["b7"]=>
string(1) "4"
}
}
}
}
}
?>
I just want to create an array and search informations inside to create my survey.
Thanks you for you helps.
Upvotes: 1
Views: 33
Reputation: 19764
You couldn't have multiple times the same question
key in your array. Each one, overrides the previous. That's why you get only one question (the last one).
You could format your array like this:
$questions = array(
'question' => array(
array(
'designignation' => 'Souhaitez-vous pouvoir contrôler votre bateau ?',
'info' => '',
'Packs' => array(
)
),
array(
'designignation' => 'Souhaitez-vous contrôler les lumières?',
'info' => '',
'Packs' => array(
)
),
array(
'designignation' => 'Souhaitez-vous plus de confort à bord?',
'info' => 'Mesure de tempêratires, humidité',
'Packs' => array(
)
),
),
);
And use a foreach()
to iterator over them:
foreach ($questions['question'] as $question) {
var_dump($question);
}
Or:
$questions = array(
array(
'designignation' => 'Souhaitez-vous pouvoir contrôler votre bateau ?',
'info' => '',
'Packs' => array(
)
),
array(
'designignation' => 'Souhaitez-vous contrôler les lumières?',
'info' => '',
'Packs' => array(
)
),
array(
'designignation' => 'Souhaitez-vous plus de confort à bord?',
'info' => 'Mesure de tempêratires, humidité',
'Packs' => array(
)
),
);
And the loop :
foreach ($questions as $question) {
var_dump($question);
}
Upvotes: 2