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

  • Автор темы Автор темы 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
 
echo implode(',', $keys).'|'.implode(',', $vals);

Не пытайся больше заниматься программингом :( Есть много других интересных профессий.
 
Автор оригинала: Adelf
echo implode(',', $keys).'|'.implode(',', $vals);

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

За подсказку-спасибо!
 
rolph
Не слушай его! Ты не видишь что-ли - у него реально выключен мозг! :)
 
Автор оригинала: 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
 
Beavis, не говори ерунды.
rolph, пойди в ман и посмотри второй параметр ф-ии mysql_fetch_array и поставь тот, что нужен тебе
 
dimagolov
я не говорю ерунды! использовать mysql_fetch_array без параметров нахрен не нужно, т.к. только в 2 раза увеличивается размер результата, а если использовать параметр FETCH_ASSOC то тогда уж проще юзать mysql_fetch_assoc
 
Beavis, говоришь. и я тоже. потому что автору не обойтись одним implode, ему надо раскладывать в два отдельных массива пары значений из каждой записи, а потом им делать implode.
 
Спасибо всем за помощь, остановился на варианте Adelf ...

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

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

Если самому, то на первой итерации не ставить запятую вообще, а со второй начать перед выводом ставить запятую.
 
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];
}
 
Сам не хочешь попробовать? :)
или ты по каким-то страшным причинам находишься сейчас далеко от PHP? :)
 
Попробывал - получилось, ну мало-ли может есть способ лучше
 
Сверху