gpt4 book ai didi

php - 在 PHP 中组合数组

转载 作者:太空宇宙 更新时间:2023-11-04 14:23:55 25 4
gpt4 key购买 nike

尝试学习 PHP 中的数组。为简洁起见发布的片段。

此处为 HTML 格式:

<p>What are your favorite type of cookies?</p> 
<input type="checkbox" name="cookies[]" value="Oreos" />Oreos<br />
<input type="checkbox" name="cookies[]" value="Chocolate chip" />Chocolate chip<br />
<input type="checkbox" name="cookies[]" value="Sugar" />Sugar<br />
<input type="checkbox" name="cookies[]" value="Vanilla Mocha" />Vanilla Mocha<br />

<p>What are your favorite type of drinks?</p>
<input type="checkbox" name="drinks[]" value="Soda" />Soda<br />
<input type="checkbox" name="drinks[]" value="Wine" />Wine<br />
<input type="checkbox" name="drinks[]" value="Milk" />Milk<br />
<input type="checkbox" name="drinks[]" value="Water" />Water<br />

PHP 页面在这里:

foreach ($drinks as $d) {
echo "Your favorite drink(s) are: " . $d . "<br />";
}

foreach ($cookies as $cookie) {
echo "Your favorite cookies are: " . $cookie . "<br />";
}

$experimentalArray = array($cookie => $d);

foreach ($experimentalArray as $key => $value) {
echo "Cookie - " . $key . " Drink - " . $value . "<br /><br />";
}

cookies 和饮料都是选择题,所以可以多选一个答案。

但是,experimentalArray 仅显示在饮料和 cookies 问题中选择的最后一个答案。

例如,我在 cookies 中选择 Oreos 和 Chocolate Chip,在饮料中选择 Soda 和 Wine。

答案是:“ cookies - 巧克力片饮料 - 酒”

为什么不显示所有值?

为多维脚本编辑

<?php 

$drinks = $_POST['drinks'];
$cookies = $_POST['cookies'];

$combinedArray = array( 'Cookies' => $cookies, 'Drinks' => $drinks);

foreach($combinedArray as $snackType => $snack) {
print "<h2>$snackType</h2>";
foreach ($snack as $number => $snackChosen) {
print " $number is $snackChosen<br />";
}

}?>

好的,所以尝试执行一个多维数组脚本,因为之前的脚本不会按照 HTML 表单获取所有值。

此脚本有效(从一本书中摘录并在此处针对此代码进行了修改),但是,$number 值从 0 开始。我如何修改它以使其从 1 开始?

此外,这种形式是否适合做多维数组?它可以用更好的方式重写吗?

再次感谢大家的回复。虽然我不是很懂他们! :) 所以,也感谢您的耐心等待。

最佳答案

不知道您使用的是哪个 php 教程,但停止使用它,它可能已经过时了!

您必须使用 $_POST/$_GET/$_REQUEST(包含 POST、GET 和 - 取决于配置- Cookie 值)数组。 register_globals已弃用,如果启用则可能存在安全漏洞。

例如,使用 $drinks = isset($_POST['drinks']) ? $_POST['drinks'] : array(); 获取 $drinks 数组。 $cookies 也是一样。


关于你的数组问题。看起来您想要 drinks 数组中的键和 hte cookies 数组中的值。如果是,请查看 array_combine() .请注意,它要求两个数组具有相同数量的元素,因此用用户生成的长度可能不同的数组来为其提供数据并不是一个好主意。

仅供引用,$experimentalArray = array($cookie => $d); 将 $cookies 的最后一个元素映射到 $drinks 的最后一个元素,因为 PHP 没有 block 作用域,因此 $cookie 和$d 仍然指向您在 foreach 循环中获得的最后一个数组元素。

关于php - 在 PHP 中组合数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4777511/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com