| |
|
|
| | Доброго всем утра. Я новичок и мало что знаю в PHP (пока).
К примеру у нас есть массив $test, в нем 4 элемента. Для того чтоб вывести все элементы массива используем конструкцию
while (list($key, $val) = each($test))
{
echo $key.'='.$val.'';
}
|
Вопрос может показаться глупым, но я на него ума не приложу как ответить:
Как привести значения всех элементов массива в одну переменную?
Спасибо | |
| |
|
|
| |
|
|
| |
для: ZeeG
(11.08.2007 в 00:20)
| | | Да-да, доброе утро =)
Вопрос, действительно, сложен для понимания...
Можбыть, поможет функция implode().. а если нет - приведите пример, плз. | |
| |
|
|
| |
|
|
| |
для: ZeeG
(11.08.2007 в 00:20)
| | | массив как я понял одномерный ;)
вот пример:
$per = null;
foreach ($test as $gg) {
$per .= $gg;
}
echo $per;
|
| |
| |
|
|
| |
|
|
| |
для: ZeeG
(11.08.2007 в 00:20)
| | | >Как привести значения всех элементов массива в одну переменную?
Вопрос не глупый, он просто неряшливо задан.
Что значит привести значения в переменную?
Приведите пример.
PS. конструкция foreach($test as $key=>$val) смотрится проще и понятнее , на мой взгляд. | |
| |
|
|
| |
|
|
| |
для: Trianon
(11.08.2007 в 00:59)
| | | ну мне тоже, но навсякий решил не мучать человека лишними там => и пр.
Ключи массива он же не просил выводить, потому я их опускаю ;) | |
| |
|
|
| |
|
|
| |
для: Proger
(11.08.2007 в 01:04)
| | | Массив у меня примерно такой:
$test = array ('A' => '1',
'B' => '2',
'C' => '3',
'D' => '4');
|
Вывод всех элементов массива:
while (list($key, $val) = each($test))
{
echo $key.'='.$val.'';
}
|
или, как предложил Trianon
foreach($test as $key=>$val)
|
Задача в следущем, я хотел бы сократить и привести код вида
$link =DIR.'test.php?A=1&B=2&C=3&D=4; // переменных может быть намного больше
|
к виду
$link =DIR.'test.php?'.$vars.''; // переменных может быть намного больше
|
| |
| |
|
|
| |
|
|
| |
для: ZeeG
(11.08.2007 в 10:02)
| | | эм...
<?php
$test = array ('A' => '1', 'B' => '2', 'C' => '3','D' => '4');
$getVARS = "?";
$link = DIR.'test.php?';
foreach($test as $key=>$val):
$getVARS .= $key."=".$val."&";
$link .= $key."=".$val."&";
endforeach;
echo DIR.'test.php'.$getVARS.'<br>';
echo $link;
?>
|
| |
| |
|
|
| |
|
|
| |
для: ZeeG
(11.08.2007 в 00:20)
| | | Можно воспользоваться следующей конструкцией
<?php
echo implode(" ", $test);
?>
|
| |
| |
|
|
| |
|
|
| |
для: cheops
(11.08.2007 в 10:11)
| | | Да но мне требуется пара из $key=$val, а не просто $val.
В конце цикла, как я понимаю, таких пар должно быть 4. Вот их то мне и надо выразить одной переменной.
Что я сделал:
<?php
$link = DIR.'test.php?'; // ссылка
$i=0;
$n = count($test); // кол-во эл. массива
for($i=1; $i<=$n; $i++){
foreach($test as $key=>$val)
{
$i<$n? $vars="$key=$val&" : $vars="$key=$val"; // думаю правильно. Главное коротко и понятно
$i++;
}
}
?>
|
Проблема у меня теперь с тем, что при написании
<?php
header("Location: ".$link."".$vars."");
?>
|
Отображается ТОЛЬКО последний элемент массива
Что делать? | |
| |
|
|
| |
|
|
| |
для: ZeeG
(11.08.2007 в 11:51)
| | | Замените вот это:
<?php
//...
$n = count($test); // кол-во эл. массива
for($i=1; $i<=$n; $i++){
foreach($test as $key=>$val)
{
$i<$n? $vars="$key=$val&" : $vars="$key=$val"; // думаю правильно. Главное коротко и понятно
$i++;
}
}
//...
?>
|
... на это:
<?php
//...
$vars = array();
foreach($test $as $param => $value) $vars[] = $param . "=" . $value;
$vars = implode("&", $vars);
//...
?>
|
| |
| |
|
|
| |
|
|
| |
для: Unkind
(11.08.2007 в 12:02)
| | | Все работает, исправил только место
foreach($test as $param => $value)
|
Всем спасибо за помощь | |
| |
|
|
| |
|
|
| |
для: ZeeG
(11.08.2007 в 12:23)
| | | Да, опечатался. | |
| |
|
|
| |
|
|
| |
для: Unkind
(11.08.2007 в 12:40)
| | | Все мы человеки. С кем не бывает.
Спасибо | |
| |
|
|