Вывод данных из массива без цикла, для Google Charts

rolph

Новичок
Вывод данных из массива без цикла, для Google Charts

Можно ли вывести данные без цикла, чтобы вставить значения в параметры картинки?
Т.е. есть массив
$arr = array("1" => "10",
"2" => "30",
"3" => "41");

Надо вывести сразу - <img src="/date1.png?'.$arr.'" />
В браузере <img src="/date1.png?1,2,3|10,30,41" />

Размер массива - может быть разный.

Скорее всего(99%) без цикла нельзя, м.б. есть другие пути решения?

Это надо для Google Charts.

Спасибо
 

Adelf

Administrator
Команда форума
join и array_keys помогут.
Откуда такой страх перед циклами?
 

rolph

Новичок
Автор оригинала: Adelf
join и array_keys помогут.
Откуда такой страх перед циклами?
понял, поковыряюсь...

Страха нет, просто непонятно как реализовать вывод из массива сразу всех значений

-~{}~ 09.09.09 17:53:

PHP:
$keys = implode( ',', array_keys( $arr ) );
$vals = implode( ',', array_values( $arr ) );
print "<img src=\"/date1.png?$keys|$vals\" />";
Это для обычного массива, а есть что-то для ассоциативного? У меня массив формируется из БД.
 

no_santa

Снегур
Выводи циклом. Вот уж чего в PHP действительно много - так это циклов...
 

rolph

Новичок
Автор оригинала: dimagolov
а чем ассоциативный от обычного отличается?
Ассоциативный массив с точки зрения интерфейса удобно рассматривать как обычный массив, в котором в качестве индексов можно использовать не только целые числа, но и значения других типов, например, строки.
 

Adelf

Administrator
Команда форума
rolph ты так и не ответил на вопрос. Разница то какая? Числа там в качестве ключей или строки. Для твоего конкретного примера - какая разница?
 

rolph

Новичок
Автор оригинала: Adelf
rolph ты так и не ответил на вопрос. Разница то какая? Числа там в качестве ключей или строки. Для твоего конкретного примера - какая разница?
В моем массиве идёт
dte - дата, наверное как ключ, а cnt-количество записей, как строка
 

Adelf

Administrator
Команда форума
rolph тут нет телепатов. Я не знаю в чем у тебя загводка. Пример сравним с 2+2 по сложности.
У тебя есть массив, и есть нужный формат данных(date1.png?1,2,3|10,30,41 например). Получить из массива нужную инфу помогут вышеописанные функции.
 

rolph

Новичок
Adelf
У меня загвоздка в том, что у меня есть ассоциативный массив, в которой из БД выводятся cnt, dte ..

В нем сейчас такая инфа:
8 9
14 10
13 11
10 12

Запускаю:
PHP:
$row4=mysql_fetch_array($q4);
$keys = implode( ',', array_keys( $row4 ) );
$vals = implode( ',', array_values( $row4 ) );
echo $keys.'-'.$vals;
Получаю:
0,cnt,1,hr-8,8,9,9
 

Adelf

Administrator
Команда форума
Разберись сначала как работает mysql. Не торопись писать. Все равно придется переписывать придется. Лучше потрать время на изучение примеров из мануала.
PHP:
$keys = array();
$vals = array();
while($row4=mysql_fetch_assoc($q4))
{
    $keys[] = $row4['cnt'];
    $vals[] = $row4['hr'];
}

а дальше сам догадаешься
 

zerkms

TDD infected
Команда форума
Adelf
ему даже сохранять в массивы это не нужно. можно просто сгенерить готовую строку и всё
 

Adelf

Administrator
Команда форума
бесполезно походу...

-~{}~ 10.09.09 11:34:

zerkms
кстати - как сразу строку то генерить? Там будет некрасивая проверка на первую строку, скорее всего :) Не люблю я их.
 

zerkms

TDD infected
Команда форума
Adelf
2 массива, 2 имплода. я прогнал насчёт того чтобы сразу...
 

rolph

Новичок
Автор оригинала: Adelf
бесполезно походу...
Почему бесполезно? Учить меня - бесполезно? ;)

Правильно я понимаю?
Пример, который ты привел, это фактически решение?
Т.е. раскидываем по 2м массивам, а потом выводим один массив, а затем другой.

PHP:
$keys = array();
$vals = array();
while($row4=mysql_fetch_assoc($q4))
{
    $keys[] = $row4['cnt'];
    $vals[] = $row4['hr'];
}
 
Сверху