V. MARTIN
V. MARTIN

Reputation: 61

Why I don't see all elements in multidimensionnel array in php

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

Answers (1)

Syscall
Syscall

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

Related Questions