以可读格式在PHP中打印数组输出

时间:2018-01-25 12:17:48

标签: php

我尝试打印用户在表单提交时选择的多个值。然而,我所看到的只是最后一个打印的元素,无论它是否被选中。

请注意,我正在看的屏幕上的印刷品是外行人可以理解的印刷品!

    <?php
    if(isset($_POST['submit'])) {
    //I'm trying to show the user these are the values you've selected
    print_r($option['name']);
    }
    ?>

    <form method="post" action="<?php echo htmlspecialchars($_SERVER[" PHP_SELF "]);?>">
        <td class="container">
            <select multiple name="mercha_A[]" class="selectpicker form-control" title="Merchandiser type">
      <?php foreach ($options as $option) { ?>
            <option value="<?php echo $option['value']; ?>" <?php echo (isset($_POST[ 'mercha_A']) && in_array($option[ 'value'], $_POST[ 'mercha_A'])) ? ' selected="selected"' : ''; ?>>
                <?php echo $option['name']; ?>
            </option>
    <?php } ?>
    </select>
        </td>
        <td><button type="submit" name="submit">Submit</button></td>
    </form>

任何人都需要在我的帐户上喝咖啡吗?

5 个答案:

答案 0 :(得分:1)

print_r封装在<pre>代码

echo "<pre>";
print_r($option['name']);
echo "</pre>;

答案 1 :(得分:0)

我认为你打算打印

$_POST['mercha_A'];

否则,$option['name']在您的情况下是完全未定义的,但即使您将print_r()放在脚本的末尾,它也只是{{1}中最后一个选项的名称}。

为了使$options可读,您可以在浏览器中查看来源(Ctrl + U),或将其包装在print_r()标签中。

答案 2 :(得分:0)

echo "<pre>";
print_r($_POST['mercha_A']); // you have to print the name attribute not option
echo "</pre>;

答案 3 :(得分:0)

使用TYPO3中的extbase调试器。

看看它是疯了:) https://github.com/TYPO3/TYPO3.CMS/blob/master/typo3/sysext/extbase/Classes/Utility/DebuggerUtility.php

它可以帮助您以可读的方式调试arraysobject

DebuggerUtility::var_dump($array)

答案 4 :(得分:0)

根据您的情况,您可以使用其中任何一种,我认为最后一种将最好地适合那些没有编程背景的人。因为,我认为JSON是一种人类可读的格式。

方法1:

echo '<pre>'; print_r($_POST['mercha_A']); echo '</pre>';

方法2:

echo json_encode($_POST['mercha_A']);