Проблема: из функции я получаю два значения и только два. Я заполняю значения в массив и возвращаю массив. Затем я пытаюсь присвоить два значения двум различным переменным, которые будут использоваться позже.
В print_r
я вижу значения - они верны, поэтому мой sql в порядке. Но я не могу разбить значения на две переменные. Помогите!
Соответствующий код здесь: Функция:
$Data = getdatastigning($stignr1);
Здесь я заполняю массив из инструкции sql:
$dataArray = array();
$res = $stmt->fetch();
$dataArray[] = $res;
return $dataArray;
Здесь используется массив:
$Data = getdatastigning($stignr1); //function to get hight and length
foreach ($Data as $name){
print_r($name) . "<br/>";
}
Как я уже сказал, print_r
показывает, что значения идеальны. Но я не могу разделить массив.
Я пробовал что-то вроде:
$hight = $Data[0];
$length = $Dat[1);
Но это не так.
Взгляните на конструкцию list():
list($hight, $length) = getdatastigning($stignr1);
Элементы массива будут назначены переменным $hight
и $length
.
Технически, fetch() уже возвращает объект (в зависимости) или fetchAll() возвращает массив, поэтому вы храните массив ($ res) внутри другого массива ($ dataArray).
Все, что вам нужно сделать, это вернуть $ res из вашей функции, затем внутри вашего foreach(), использовать список()
list($hight, $length) = $Data;
или, чтобы сделать это немного легче без вторичной переменной:
list($hight,$length) = getdatastigning($stignr1);