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

Adelf

Administrator
Команда форума
rolph да - это фактически решение. И понимаешь правильно, но далеко не с первого раза :)
 

rolph

Новичок
Adelf
Работаю над собой :)

Спасибо, буду разбираться

-~{}~ 10.09.09 15:20:

Подскажите плиз,

сделал так:
PHP:
$keys = array(); 
$vals = array();  

if (mysql_num_rows($q4)>0) 
{
while ($row4=mysql_fetch_array($q4))
{
$keys[] = $row4['cnt'];
$vals[] = $row4['hr']; 

}
foreach (array_merge($keys,$vals) as $value) {
echo '<b>'.$value.',';
}
}
Выводит:
8,15,14,11,3,22,4,8,9,9,10,11,12,13,14,15,16,17,

Всё супер, но надо, чтобы выводило так:
8,15,14,11,3,22,4,8,9|9,10,11,12,13,14,15,16,17
 

Adelf

Administrator
Команда форума
echo implode(',', $keys).'|'.implode(',', $vals);

Не пытайся больше заниматься программингом :( Есть много других интересных профессий.
 

rolph

Новичок
Автор оригинала: Adelf
echo implode(',', $keys).'|'.implode(',', $vals);

Не пытайся больше заниматься программингом :( Есть много других интересных профессий.
Безнадежно?

За подсказку-спасибо!
 

no_santa

Снегур
rolph
Не слушай его! Ты не видишь что-ли - у него реально выключен мозг! :)
 

Beavis

Banned
Автор оригинала: rolph
Adelf
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
потому что не надо пользоваться функцией mysql_fetch_array!
используй mysql_fetch_assoc
 

dimagolov

Новичок
Beavis, не говори ерунды.
rolph, пойди в ман и посмотри второй параметр ф-ии mysql_fetch_array и поставь тот, что нужен тебе
 

Beavis

Banned
dimagolov
я не говорю ерунды! использовать mysql_fetch_array без параметров нахрен не нужно, т.к. только в 2 раза увеличивается размер результата, а если использовать параметр FETCH_ASSOC то тогда уж проще юзать mysql_fetch_assoc
 

dimagolov

Новичок
Beavis, говоришь. и я тоже. потому что автору не обойтись одним implode, ему надо раскладывать в два отдельных массива пары значений из каждой записи, а потом им делать implode.
 

rolph

Новичок
Спасибо всем за помощь, остановился на варианте Adelf ...

Маленький вопрос, чтобы не создавать тему.

Как можно сделать цикл foreach, чтобы после последнего значения не выводилась запятая(в цикле значения через запятую)?
 

Adelf

Administrator
Команда форума
собери в массив и join :) Это если попроще.

Если самому, то на первой итерации не ставить запятую вообще, а со второй начать перед выводом ставить запятую.
 

zerkms

TDD infected
Команда форума
rolph
проще собрать вывод в переменную и после цикла отрезать лишнюю запятую.
 

rolph

Новичок
Автор оригинала: Adelf
собери в массив и join :) Это если попроще.

Если самому, то на первой итерации не ставить запятую вообще, а со второй начать перед выводом ставить запятую.
Попробую оба варианта join - это аналог implode? Спасибо

-~{}~ 15.09.09 15:22:

Автор оригинала: zerkms
rolph
проще собрать вывод в переменную и после цикла отрезать лишнюю запятую.
А можно это дело занести в переменную-массив сразу?

Хотелось бы занести в переменную :
PHP:
$data = array('x1' => y1, 'x2'=> y2, 'x3'=>y3, 'x4'=>y4, 'x5'=>y5);
x и y - столбцы
так?
PHP:
for($i=0; $i<count($keys); $i++) {
   $data[$keys[$i]] = $vals[$i];
}
 

Adelf

Administrator
Команда форума
Сам не хочешь попробовать? :)
или ты по каким-то страшным причинам находишься сейчас далеко от PHP? :)
 

rolph

Новичок
Попробывал - получилось, ну мало-ли может есть способ лучше
 
Сверху