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];
}