PHP foreach数组只返回第一个字符

PHP foreach数组只返回第一个字符,php,Php,我在会话中有一个数组,如下所示: Array ( [0] => Array ( [0] => /storage/ssd3/334/5218334/tmp/php2swaoM [1] => Petty cash request form.png [2] => ../images/Petty cash request form.png ) [1] =>

我在会话中有一个数组,如下所示:

Array
(
    [0] => Array
        (
            [0] => /storage/ssd3/334/5218334/tmp/php2swaoM
            [1] => Petty cash request form.png
            [2] => ../images/Petty cash request form.png
        )

    [1] => Array
        (
            [0] => /storage/ssd3/334/5218334/tmp/phpISXPED
            [1] => Business Advance Form.png
            [2] => ../images/Business Advance Form.png
        )
)
问题是,当我在数组中循环时,它只返回第一个字符,这是我的代码:

  $array = $_SESSION["att_arr"];
  $requestID =  $_SESSION["requestID"];

  foreach ($array as $key => $values) {
    foreach ($values as $value) {
        $filetmp = $value[0];
        $filename = $value[1];
        $filepath = $value[2];

        //move_uploaded_file($filetmp,$filepath);

        $insert_sql = "INSERT INTO attachments (name, location, request_id) VALUES ('$filename','$filepath','$requestID')";

        if(mysqli_query($dbcon, $insert_sql)){
          echo "done";
        } else{
          echo "ERROR: Could not able to execute $insert_sql. " . mysqli_error($dbcon);
        }
    }
  }

这将循环内部数组中的每个项:

foreach ($values as $value) {
    $filetmp = $value[0];
例如,在第一个循环中,
$value
/storage/ssd3/334/5218334/tmp/php2swoam
。执行
$value[0]
时,它将返回第一个字符

这就是你做错的


如果所有内部数组都有固定的3项,我相信您可以省略内部循环。

这是对内部数组中的每个项进行循环:

foreach ($values as $value) {
    $filetmp = $value[0];
例如,在第一个循环中,
$value
/storage/ssd3/334/5218334/tmp/php2swoam
。执行
$value[0]
时,它将返回第一个字符

这就是你做错的


如果所有内部数组都有固定的3项,我相信您可以省略内部循环。

取出第二个foreach,将对
$value
的引用更改为
$values
我来这里回答问题并提供建议,不确定您的第二个foreach的议程是什么,将对
$value
的引用更改为
$values
我来这里是为了回答问题和提供建议,不知道你的日程安排是什么