【问题标题】:PHP concatenate values into arrayPHP将值连接到数组中
【发布时间】:2015-12-02 10:14:10
【问题描述】:

我是 php 新手,想知道如何使以下操作成为可能...

下面我有几个从数据库行填充的数组。我想有一个新数组 mappingId 连接几行以形成 mappingId 数组的值。下面我使用了 array_combine 但这似乎不起作用。谁能建议使用什么?

$appId = array();
$appDate = array();
$appTime = array();
$appDoctorId = array();
$mappingId = array(); // combined values

for ($i = 0; $i < mysqli_num_rows($resultAppointmentsBooked); $i++)
{
    $row = mysqli_fetch_row($resultAppointmentsBooked);
    $appId = $row[0];
    $ids[] = $row[0];
    $appTime[] = $row[3];
    $appDate[] = $row[4];
    $appDoctorId[] = $row[2];
    $mappingId = array_combine($row[4], $row[3], $row[2]);

    //Test output
    echo "MappingId: $row[4]$row[3]$row[2] <br />";
    echo "MappingId2: - $mappingId[$i] <br />";
}

我也通过以下方式使用了'array_merge' ...

                $ids[] = $row[0];
                $appTime[] = $row[3];
                $appDate[] = $row[4];
                $appDoctorId[] = $row[2];

                $mappingId = array_merge($appDate, $appTime, $appDoctorId);

但是当我打印这些值时...

             echo "MappingId2: $mappingId[$i] <br />";

它只输出第一个数组的值。

【问题讨论】:

  • $mappingId 应该如何保存数据?
  • 你得到了什么数据$resultAppointmentsBooked,你想如何构造$mappingId
  • 只是一个挑剔,连接是一个字符串操作,所以你不能将值连接到一个数组中。而array_combine 想要两个数组作为参数(一个用于键,一个用于值),因此传递字符串将不起作用。
  • 我想让'MappingId'告诉appDate+appTime+appDoctorId的值。 $resultAppointmentsBooked 本质上是数据库表中的行。 @deepakb @e
  • appDate+appTime+appDoctorId 是什么意思?你想要那些带有+ 符号或类似appDate apTime appDoctorId 的值吗?请告诉我。检查我的答案!

标签: php arrays concatenation concat


【解决方案1】:

试试这样的。如果这是你需要的。在下面的代码中 $mappingId 包含单个 appDateappTimeappDoctorId 的数组格式。如果您不希望数组只想将这些值与一个元素连接起来,那么您也可以这样做。请告诉我!

$mappingId = array(); // combined values

for ($i = 0; $i < mysqli_num_rows($resultAppointmentsBooked); $i++)
{
    $row = mysqli_fetch_row($resultAppointmentsBooked);
    $appId = $row[0];
    $appTime = $row[3];
    $appDate = $row[4];
    $appDoctorId = $row[2];
    $myArr = array();
    //array_push($myArr, $appDate, $appTime, $appDoctorId);
    // If you want in concatenate format
    array_push($myArr, $appDate."".$appTime."".$appDoctorId);
    array_push($mappingId, $myArr);
}

【讨论】:

  • Array-push 似乎可以完成这项工作!
【解决方案2】:

您可以通过以下方式向数组添加值:

 $mappingId[] = 'Hello';
 $mappingId[] = 'There';
 $mappingId[] = 'Friend';

结果:

 $mappingId = array('Hello', 'There', 'Friend');

--

您也可以使用array_merge

这会将一个或多个数组的元素合并在一起,以便将一个数组的值附加到前一个数组的末尾。它返回结果数组。

【讨论】:

    【解决方案3】:

    我想你要找的是array_merge

    array_merge(array(1), array(2,3)); //return array(1,2,3)
    

    【讨论】:

    • 请提供代码示例以进一步解释您的答案。还有为什么 array_merge.
    【解决方案4】:

    尝试这样的事情,array_merge 应该可以工作:

    $ids = $row[0];
    $appTime = $row[3];
    $appDate = $row[4];
    $appDoctorId = $row[2];
    $mappingId = array_merge($ids, $appTime, $appDate, $appDoctorId);
    
    echo "MappingId: $row[4]$row[3]$row[2] <br />";
    echo "MappingId2: - $mappingId <br />";
    

    【讨论】:

    • 您好,我试过了,结果是没有输出。 @大卫
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-22
    • 1970-01-01
    • 2022-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多