Php 如何从数组生成变量

Php 如何从数组生成变量,php,mysql,arrays,Php,Mysql,Arrays,我正在尝试将数组项分配到数组中。 这是我的密码 $sqlText['attach']="SELECT attachments.disk_directory, attachments.disk_filename, attachments.digest, attachments.filename FROM attachments WHER

我正在尝试将数组项分配到数组中。 这是我的密码

$sqlText['attach']="SELECT attachments.disk_directory, 
                attachments.disk_filename, 
                attachments.digest,
                attachments.filename
                FROM attachments
                WHERE container_id = $myPage
                GROUP BY digest";

$sqlQuery_MainMenu = mysql_db_query($db, $sqlText['attach'], $connection) or die("DB CON ERROR");
$directories=array();
$files=array();
$file_names=array();
while($mm_Content=mysql_fetch_array($sqlQuery_MainMenu)){
    $directories[]=$mm_Content[disk_directory];
    $files[]=$mm_Content[disk_filename];
    $file_names[]=$mm_Content[filename];

}   
foreach($directories as $index => $directory){
 $attachment = $directory.'/'.$files[$index].'<pre>';

  }
    foreach($file_names as $file_name){
 $file_name.'<pre>';

  }         
我只想从foreach循环中得到这些结果,并将它们赋给一个变量。当我使用这个新变量时,我希望它具有上面示例中的值

我想将此附件发送到PHPMailer附件 假设有两个变量文件和名称,它们具有来自foreach循环的结果。 关于PHPMailer

while($mm_Content=mysql_fetch_array($sqlQuery_MainMenu))
{
   $directories[]=$mm_Content[disk_directory];
   $files[]=$mm_Content[disk_filename];
   $file_names[]=$mm_Content[filename];
} 
如果这不起作用,我将把我的代码改为

while($mm_Content=mysql_fetch_array($sqlQuery_MainMenu))
{
   $directories[]=$mm_Content["disk_directory"];
   $files[]=$mm_Content["disk_filename"];
   $file_names[]=$mm_Content["filename"];
} 

忘记文件名。

您可以使用var\u dump或return调试变量内容:

foreach($attachments AS $attachment)
{
   echo $attachment;
}

您可以使用foreach遍历变量。

我可能不完全理解您要做什么,但我在您的代码中观察到了一两件事。首先,在while循环中,$mm_内容数组成员周围应该有引号。目前,您拥有的是:

for($i = 0; $i < count($attachments) $i++)
{
   echo $attachments[$i];
}
您可以这样重新编写:

也就是说,您的foreach循环没有响应您想要的内容,因为在每个后续迭代中,您都会用新的值覆盖$attachment变量中的前一个值。要使它保存循环中的每个值,您必须遵循$directories变量的操作方法:将其声明为数组,并将随后的每个循环值分配给新的数组元素。应用此原则,您的代码应如下所示:

或者,使用for循环:


你想做什么?你遇到了什么问题?如果你能说清楚一点,那会有帮助的。@NaijaProgrammer谢谢你提醒我更新了我的问题。我的目标是从foreach获取所有结果,并将它们分配到一个变量中,然后使用该变量。除了这些注释和提示之外,答案在哪里?非常感谢你的回答,但这不是我想要的。我想从foreach获取所有结果,并将其用于变量。尽管var_转储$var;我的案子也只打印了一个结果。非常感谢你的帮助和回答。我的目标只是将foreach循环分配给一个变量。我试过你的建议,但结果失败了。
var_dump($var); // Automatic echo
print_r($var); // Automatic echo
print_r($var, true); // Return
while($mm_Content=mysql_fetch_array($sqlQuery_MainMenu))
{
   $directories[]=$mm_Content[disk_directory];
   $files[]=$mm_Content[disk_filename];
   $file_names[]=$mm_Content[filename];
} 
while($mm_Content=mysql_fetch_array($sqlQuery_MainMenu))
{
   $directories[]=$mm_Content["disk_directory"];
   $files[]=$mm_Content["disk_filename"];
   $file_names[]=$mm_Content["filename"];
} 
$attachments = array(); //create and initialise the attachments array
$counter = 0; //create and initialise a counter variable
foreach($directories as $index => $directory)
{
   $attachment[$counter] = $directory.'/'.$files[$index];
}
foreach($file_names as $file_name)
{
    $attachment[$counter] .= '<pre>'. $file_name.'</pre>';

    ++$counter; //increment the counter variable
}
foreach($attachments AS $attachment)
{
   echo $attachment;
}
for($i = 0; $i < count($attachments) $i++)
{
   echo $attachments[$i];
}