PHP多维数组无法显示全部元素,如何获取所有问题名称?
解决PHP多维数组中获取所有
designation的问题 首先提个小细节:你代码里的字段拼写是designignation,应该是笔误多写了一个i(正确拼写是designation),如果实际字段名就是这个那没问题,要是写错了记得修正哦~
接下来针对你的情况,分两种场景来处理:
场景1:当前数组只有单个问题项
你给出的代码里,$questions的结构是外层有个question键,对应单个问题数组,那直接通过键名就能拿到这个designignation:
<?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( // 补全你的PackTotal内容,务必确保数组括号正确闭合 ) ) ) ); // 获取单个问题的designignation $singleDesignation = $questions['question']['designignation']; echo $singleDesignation; // 输出对应的问题文本
场景2:数组包含多个问题项
如果你的$questions实际是包含多个问题的数组(比如类似array([0] => 问题1数组, [1] => 问题2数组...)),那可以用两种方法批量获取所有designignation:
方法1:foreach循环遍历
手动遍历数组,把每个问题的designignation收集起来:
$allDesignations = []; foreach ($questions as $questionItem) { // 先判断字段是否存在,避免出现Undefined index报错 if (isset($questionItem['designignation'])) { $allDesignations[] = $questionItem['designignation']; } } // 打印所有结果 print_r($allDesignations);
方法2:使用array_column函数(PHP 5.5及以上可用)
这个函数可以直接从多维数组中提取指定键的所有值,代码更简洁:
// 直接提取所有designignation字段的值 $allDesignations = array_column($questions, 'designignation'); print_r($allDesignations);
另外你提到“无法看到全部问题”,大概率是数组结构有问题——比如你代码里PackTotal后面的a...是未完成的内容,一定要确保数组的括号是正确闭合的,否则会出现语法错误,导致部分数据无法正常解析。
内容的提问来源于stack exchange,提问作者V. MARTIN
相关产品推荐
相关产品推荐

