2015-05-16 3 views
0

Я пытаюсь назначить элементы массива в массив. Вот мой код;Как сделать переменную из массива

Моя цель - получить все результаты от foreach и назначить их в переменную и использовать эту переменную позже.

Что я делаю, только приносит один элемент из массива. Я пробовал извлечение php и пару других вещей, но никто не работал. Я просто хочу назначить цикл foreach переменной Ваши предложения очень ценятся.

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

    } 

Возврат с результатом 5;

/documents/directory/filename.jpg 
/documents/directory/filename1.jpg 
/documents/directory5/somename.jpg 

Я просто хочу получить этот результат из цикла foreach и присвоить их переменной. Когда я использую эту новую переменную, я хочу, чтобы она имела значения, которые выше примера.

Я хочу отправить эти вложения в вложения PHPMailer Скажем, есть два файла переменных и имена, которые имеют результаты из цикла foreach. На PHPMailer;

$mail->addAttachment($files, $names); 

Если это не сработает, я собираюсь изменить свой код;

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

    } 

И забудьте о файлах.

+1

Что вы пытаетесь сделать и в чем проблема, с которой вы сталкиваетесь? Если вы можете быть немного яснее, это поможет. – NaijaProgrammer

+0

@ NaijaProgrammer Спасибо, что напомнили, я обновил свой вопрос. Моя цель - получить все результаты от foreach и назначить их в переменную и использовать эту переменную позже. – orko

ответ

0

Вы можете отладить переменные содержимого с var_dump или возврата:

var_dump($var); // Automatic echo 
print_r($var); // Automatic echo 
print_r($var, true); // Return 

Вы можете перебирать через переменную с Еогеасп.

+0

А где ответ, помимо всех этих комментариев и намеков? – Rizier123

+0

Большое спасибо за ответ, но это не то, что я ищу. Я хочу получить все результаты от foreach и использовать его для переменной. Хотя 'var_dump ($ var);' также выводит только один результат на мой случай. – orko

0

Возможно, я не совсем понимаю, что вы пытаетесь сделать, но я заметил одну или две вещи в вашем коде. Во-первых, в цикле while у вас должны быть кавычки, содержащие элементы массива $mm_Content. В настоящее время, что у вас есть:

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

Это, как говорится, ваш цикл Еогеасп не вторя, что вы хотите, потому что на каждой последующей итерации вы перезапишите предыдущее значение в переменной $attachment с новой. Чтобы заставить его удерживать каждое значение из цикла, вам нужно перейти к тому, как вы это сделали для переменной $directories: объявите его как массив и назначьте каждое последующее значение цикла новому элементу массива. Применяя этот принцип, ваш код должен выглядеть следующим образом:

$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 цикл:

for($i = 0; $i < count($attachments) $i++) 
{ 
    echo $attachments[$i]; 
} 
+0

Большое спасибо за вашу помощь и ответ. Моя цель - просто назначить foreach loop переменной. Я попробовал ваше предложение, но в результате он привел Array. – orko

Смежные вопросы