2011-04-11 3 views
0

Я работаю над этим некоторое время и, похоже, не понимаю его. Любая помощь будет оценена по достоинству. вот так.извлекать элементы из php-массива и назначать их как переменные

У меня есть html-форма, в которой есть текстовое поле и кнопка отправки. текст, введенный в текстовое поле, отправляется в мою .php-форму процессора. Как только он получает здесь, я использую:

$textdata = $_POST['textdata']; 

$input = explode("\n", $textdata); 

это берет данные, разбивает его на линии, и хранит каждая строка в массиве называется $input. отсюда я могу ответить $input[0], чтобы получить первую строку и так далее. Но мне нужно использовать это ниже в моем сценарии и нужно назначить переменную в первую строку, или $input[0]. $input[0] = $line1; не работает. Думаю, мне, возможно, придется использовать extract() и цикл foreach? Любая помощь будет принята с благодарностью. благодаря!

+0

Что вы описываете должны работать. Можете ли вы попробовать 'var_dump()' 'в массиве '$ input' до и после изменения первого элемента, чтобы убедиться? –

+1

Вы проверили $ input на самом деле массив? В зависимости от настроек сервера/кодировки символ новой строки может отсутствовать, поэтому ваш взрыв не будет работать как есть. –

ответ

2

хорошо Ф.О. одно $input массива всегда будет доступен, или то, что вы можете сделать, если я правильно понимаю, это:

$textdata = $_POST['textdata']; 

$input = explode("\n", $textdata); //this should have the array of lines assuming 
            //that $textdata was \n delimited 

$line1 = $input[0]; //use $line1 later in code 
+1

Вау, я определял свою переменную в обратном направлении. который отлично отработал вам большое спасибо. – tknickman

+0

Возможно, вы захотите отметить этот ответ, если он решит вашу проблему :) – Lukman

0

$ вход [0]. $ input [0] = $ line1;

Я не могу определить, является ли полная остановка в этой линии оператором полной или конкатенации.

Для конкатенации это должно быть так.

$input[0] = $input[0] . $line1; 

или даже короче

$input[0] .= $line1; 

Если вы просто хотите присвоить $input[0] к $line1 по значению, это

$line1 = $input[0]; 

Вы также можете назначить ссылку, используя

$line1 =& $input[0]; 

Используя последние, любые изменения, внесенные в $line1, будут представлены в $input[0].

1
$line1 = $input[0]; 
$line2 = $input[1]; 
$line3 = $input[2]; 
// etc. 

или:

for ($i=0, $inputlen = count($input); $i < $inputlen; $i++) { 
    ${'line'.($i+1)} = $input[$i]; 
} 

или просто:

list($line1, $line2, $line3) = $input; 
Смежные вопросы