如何合并2个数组(PHP、表单)

如何合并2个数组(PHP、表单),php,mysql,arrays,forms,concatenation,Php,Mysql,Arrays,Forms,Concatenation,我在一个数据库中有多个地址,每行1出发1到达 我想在“表单/选择”中添加这些内容 我可以通过以下方式显示所有这些内容: echo $arraydep[0].$arrayarr[0]; 但是 或 或 不在我的表单中显示所有内容,仅显示1行的出发和到达 如果你能帮助我,那就太好了:) 这是我的完整代码: <?php include "./cfg/db.php"; $sql = 'SELECT * FROM commandes WHERE phone="555-1234"'; $list =

我在一个数据库中有多个地址,每行1出发1到达

我想在“表单/选择”中添加这些内容

我可以通过以下方式显示所有这些内容:

echo $arraydep[0].$arrayarr[0];
但是

不在我的表单中显示所有内容,仅显示1行的出发和到达

如果你能帮助我,那就太好了:)

这是我的完整代码:

<?php
include "./cfg/db.php";

$sql = 'SELECT * FROM commandes WHERE phone="555-1234"';
$list = mysqli_query($base, $sql) or die("Erreur SQL !" . $sql . "<br />" . mysqli_error());
mysqli_query($base, $sql) or die("Erreur SQL !" . $sql . "<br />" . mysqli_error());

while ($data = mysqli_fetch_array($list))
    {
    $arraydep = array(
        $data[depadresse]
    );
    $arrayarr = array(
        $data[arradresse]
    );
    echo $arraydep[0] . $arrayarr[0]; // echo all adresses from database for this phone number (for testing)
    $adresses = array(
        $arraydep[0],
        $arrayarr[0]
    );
    }

?>
    <form action="test2.php" method="post">
    <select name="test2">
        <?php

foreach($adresses as $adresse)
    {
?>
        <option value="<?php
    echo $adresses . "<br />"; ?>">
        <?php
    echo $adresse . "<br />"; // only echo 1 departure and 1 arrival for 1 row in the drowdown menu
    }

?>
        </option>
    </select>
    <input type="submit" value="Valider" />
</form>

您只在数组中插入第一行。试试这个

$i = 0;
    while ($data = mysqli_fetch_array($list))
        {
        $arraydep = array(
            $data[depadresse]
        );
        $arrayarr = array(
            $data[arradresse]
        );
        echo $arraydep[$i] . $arrayarr[$i]; // echo all adresses from database for this phone number (for testing)
        $adresses = array(
            $arraydep[$i],
            $arrayarr[$i]
        );
        $i++
        }

您只在数组中插入第一行。试试这个

$i = 0;
    while ($data = mysqli_fetch_array($list))
        {
        $arraydep = array(
            $data[depadresse]
        );
        $arrayarr = array(
            $data[arradresse]
        );
        echo $arraydep[$i] . $arrayarr[$i]; // echo all adresses from database for this phone number (for testing)
        $adresses = array(
            $arraydep[$i],
            $arrayarr[$i]
        );
        $i++
        }

在外循环定义数组,否则在下一个语句中不起作用

请看我代码下面的用法

$arraydep = array();
$arrayarr = array();
$adresses = array();
while ($data = mysqli_fetch_array($list))
{
    $arraydep[] =  $data['depadresse'];
    $arrayarr[] =  $data['arradresse'];
    $adresses[] = array( $arraydep[0], $arrayarr[0]);
}

var_dump($adresses);

echo $adresses[0][0] . ' ' . $adresses[0][1];

echo $adresses[1];

foreach ($oneOfDep as $arraydep){
    echo $oneOfDep . ' ';
}

在外循环定义数组,否则在下一个语句中不起作用

请看我代码下面的用法

$arraydep = array();
$arrayarr = array();
$adresses = array();
while ($data = mysqli_fetch_array($list))
{
    $arraydep[] =  $data['depadresse'];
    $arrayarr[] =  $data['arradresse'];
    $adresses[] = array( $arraydep[0], $arrayarr[0]);
}

var_dump($adresses);

echo $adresses[0][0] . ' ' . $adresses[0][1];

echo $adresses[1];

foreach ($oneOfDep as $arraydep){
    echo $oneOfDep . ' ';
}

每次循环时,都需要将每组到达/离开附加到数组中

$adresses = array();
while ($data = mysqli_fetch_array($list,MYSQLI_ASSOC))
{
    $adresses[] = array(
        'dep' => $data['depadresse'],
        'arr' => $data['arradresse']
    );
}
如果您使用MYSQLI_ASSOC来检索结果,那么结果将由字段名键入。我不知道你的字段叫什么,但在访问$data时,它们需要放在引号内

在使用数组之前初始化数组也是一种很好的做法

您还应该避免选择*用法,而是始终列出您感兴趣的字段。这会告诉其他开发人员您的意图

您还应该考虑使用<强> MySqLyFutChyAL($LIST,MyQuiLasAsOC),然后不需要使用上面的循环。< /P> 要输出结果,只需使用以下命令。虽然我不确定您希望如何输出结果:

foreach($adresses as $adresse) 
{
    echo "<option value='{$adresse['dep']}'>{$adresse['dep']}</option>";
    echo "<option value='{$adresse['arr']}'>{$adresse['arr']}</option>";

}
foreach($adrese as$adrese)
{
回音“{$adresse['dep']}”;
回音“{$adresse['arr']}”;
}

每次在循环中,您都需要将每组到达/离开附加到数组中

$adresses = array();
while ($data = mysqli_fetch_array($list,MYSQLI_ASSOC))
{
    $adresses[] = array(
        'dep' => $data['depadresse'],
        'arr' => $data['arradresse']
    );
}
如果您使用MYSQLI_ASSOC来检索结果,那么结果将由字段名键入。我不知道你的字段叫什么,但在访问$data时,它们需要放在引号内

在使用数组之前初始化数组也是一种很好的做法

您还应该避免选择*用法,而是始终列出您感兴趣的字段。这会告诉其他开发人员您的意图

您还应该考虑使用<强> MySqLyFutChyAL($LIST,MyQuiLasAsOC),然后不需要使用上面的循环。< /P> 要输出结果,只需使用以下命令。虽然我不确定您希望如何输出结果:

foreach($adresses as $adresse) 
{
    echo "<option value='{$adresse['dep']}'>{$adresse['dep']}</option>";
    echo "<option value='{$adresse['arr']}'>{$adresse['arr']}</option>";

}
foreach($adrese as$adrese)
{
回音“{$adresse['dep']}”;
回音“{$adresse['arr']}”;
}

使用引号引用数组元素,例如
$data['depadresse']
mysqli\u error()
此处需要db连接。使用引号引用数组元素,例如
$data['depadresse']
mysqli\u error()
此处需要db连接。