Не могу нигде найти примера, как вывести даные из трёх переменных... ситуация такова: Имеются три переменные: $deg_max[1], $deg_min[1] и $date[1]. Они выводят данные: $deg_max[1] - 22,18,16,14,17,15,15,21,21,21,22,15,14,17,16,17,21,23,24,24,24,23,19,15,16,17,19,21,23 $deg_min[1] - 12,14,11,10,11,11,13,13,11,14,11,11,8,9,12,11,10,10,13,12,13,14,14,11,10,11,11,12,12 $date[1] - '1','3','5','7','9','11','13','15','17','19','21','23','25','27','29' Нужно: 1: К переменной $date[1] добавлять недостающее промежуточное число (это дата). Если 1 и 3, то чтобы между ними было 2, и т д... 2: Выводить списком по 1 параметру из каждой переменной. Например: 22 - 12 - 1 18 - 14 - 2 16 - 11 - 3 и т д. Помогите пожалуйста с решением.
Спасибо, но не совсем то... Твой пример выводит Array ( [1] => bag [2] => bag [3] => bag ), а мне нужно в виде: {"tmax":10,"tmin":"6","day":"7"}.
Мож еще кто поможет??? Даные для скрипта должны выводиться так: Код (Text): [{"days":10,"tmin":"-2","tmax":"7"},{"days":11,"tmin":"8","tmax":"14"},{"days":12,"tmin":"2","tmax":"9"}] . для такого вида используется скрипт: Код (Text): <?php $data = array( array( 'days'=>10, 'tmin'=>'-2', 'tmax'=>'7' ), array( 'days'=>11, 'tmin'=>'8', 'tmax'=>'14' ), array( 'days'=>12, 'tmin'=>'2', 'tmax'=>'9' ) ); if (isset($_REQUEST['days'])) { $days = $_REQUEST['days']; foreach ($data as &$customer) { if ($customer['days'] == $days) { echo json_encode($customer); break; } } } else { echo json_encode($data); } ?> Нужно только изсенить указанные данные на данные, поступающие из переменных Код (Text): $deg_max[1]; $deg_min[1];$date[1]; .
В дате нужно как-то упорядочить данные. получаю вид: '5','7','9','11','13','15','17','19','21','23','25','27','29','1','3', а нужно, чтобы отображалось каждое число: 5,6,7.8,9,10....
MAN_IFE_ST, дай пожалуйста конкретный пример. относящийся к моей ситуации. Ничего не подошло... Это с датой. А с выводом даных из переменных $dg_min и $dg_max я так и не смог поразбивать их на список. Мне сначала нужно указать, каким образом резать массив на список. То-есть, чтобы отобразить одно число из массива $dg_min, я использую $dg_min[0], а мне нужно, чтобы это делалось автоматом на основе подсчёта этих $dg_min[Х]. сколько их максимум насчитало, например по $dg_min[15], знач 15 и вывести. Вот что мне надо было... Код (Text): $var_max = "22,18,16,14,17,15,15,21,21,21,22,15,14,17,16,17,21,23,24,24,24,23,19,15,16,17,19,21,23"; $var_max = explode(",", $var_max); $var_min = "12,14,11,10,11,11,13,13,11,14,11,11,8,9,12,11,10,10,13,12,13,14,14,11,10,11,11,12,12"; $var_min = explode(",", $var_min); $var_date = "'1','3','5','7','9','11','13','15','17','19','21','23','25','27','29'"; $var_date = explode(",", $var_date); echo "<br>"; for ($i=0; $i<count($var_max), $i<count($var_min), $i<count($var_date); $i++) { echo "<li> $i =".$var_max[$i]." - ".$var_min[$i]." - ".$var_date[$i]; } Остаётся тока подумать, как в переменной Код (Text): $var_date = "'1','3','5','7','9','11','13','15','17','19','21','23','25','27','29'"; промежуточные числа вставлять.. ------------------------------------------------- Получаю массив: [{"days":0,"tmin":"10","tmax":"22"},{"days":1,"tmin":"10","tmax":"19"},{"days":2,"tmin":"11","tmax":"20"},{"days":3,"tmin":"14","tmax":"17"},{"days":4,"tmin":"13","tmax":"16"},{"days":5,"tmin":"12","tmax":"14"},{"days":6,"tmin":"12","tmax":"13"},{"days":7,"tmin":"11","tmax":"17"},{"days":8,"tmin":"10","tmax":"19"},{"days":9,"tmin":"9","tmax":"14"},{"days":10,"tmin":"8","tmax":"14"},{"days":11,"tmin":"6","tmax":"14"},{"days":12,"tmin":"12","tmax":"19"},{"days":13,"tmin":"14","tmax":"15"},{"days":14,"tmin":"15","tmax":"18"},{"days":15,"tmin":"12","tmax":"14"},{"days":16,"tmin":"9","tmax":"14"},{"days":17,"tmin":"8","tmax":"13"},{"days":18,"tmin":"5","tmax":"14"},{"days":19,"tmin":"5","tmax":"11"},{"days":20,"tmin":"5","tmax":"12"},{"days":21,"tmin":"5","tmax":"14"},{"days":22,"tmin":"10","tmax":"13"},{"days":23,"tmin":"10","tmax":"14"},{"days":24,"tmin":"10","tmax":"14"},{"days":25,"tmin":"10","tmax":"14"},{"days":26,"tmin":"9","tmax":"13"},{"days":27,"tmin":"9","tmax":"14"},], но проблемка есть... Как последнюю запятую удалить??? Обработчик: Код (Text): echo "["; for ($comma=',', $i=0; $i<count($dg_min), $i<count($dg_max); $i++) { echo "{\"days\":$i,\"tmin\":\"".$dg_min[$i]."\",\"tmax\":\"".$dg_max[$i]."\"}".$comma; } echo "]"; $comma - єто запятая, загнанная в переменную, чтобы чего с ней сделать, но пока не могу ничего придумать...
то ли все уснули, то ли заняты... результат получился... Код (Text): <?php //Запитуємо та вводимо дані /**/ $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'http://www.gismeteo.ua/ua/month/4953/'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); $get_data = curl_exec($ch); // Діаграма на місяць $rs2 = explode('<div class="rframe" id="graph"><div class="fcontent">',$get_data); $get_data = $rs2[1] ; $rs2 = explode('</div></div>',$get_data); $diagram = $rs2[0]; //Обробка //Максимальна температура preg_match("!c:\[(.*?)\],!si", $diagram, $deg_max); $dg_max = explode(",", $deg_max[1]); //Мінімальна температура preg_match("!cmin:\[(.*?)\],!si", $diagram, $deg_min); $dg_min = explode(",", $deg_min[1]); preg_match("!x:\[(.*?)\],!si", $diagram, $date); //Дата $dat = explode("'", $date[1]); $dat = str_replace(',', '', $dat); $dat = str_replace('\'', '', $dat); // Профільтрували дані // $datas = array($dg_min, $dg_max); $comma=','; echo "["; for ($i=0, $j=0; $i<count($datas[0]), $j<count($datas[1]); $i++, $j++){ //if ($i = count($datas[0]) -1 and $j = count($datas[1]) -1) $comma = null; $res = "{\"days\":$i,\"tmin\":\"".$datas[0][$i]."\",\"tmax\":\"".$datas[1][$j]."\"}".$comma; $resultat = $resultat.$res; } $y = strlen($resultat); $r = substr ($resultat, 0, $y-1); echo $r; echo "]"; ?> Но... На ксампе нормально работает, а на серваке вин7 дома не хочет - выдает ошибку.. На ксампе PHP 5.1.6.
Возможно, на серваке на вин7 не установлен curl? Как правило, можно обойтись и без него. Получить нужные данные можно и с помощью file_get_contents(). Он тоже умеет делать как GET, так и POST запросы, отправлять в запросе произвольные заголовки. В руководстве по php расписано (и есть примеры) как этим пользоваться. Добавлено спустя 20 минут 9 секунд: Касаемо твоей изначальной задачи, которая в первом сообщении этой темы. У тебя там в первых двух списках одинаковое количество элементов - для каждого дня свой элемент. А в третьем списке - там идут сами дни, но часть из них - пропущена. Однако указан первый и последний день, которые должны присутствовать в этом списке. Как я понял из текста задачи - тебе нужно пересоздать этот список так, чтобы в нём присутствовали все дни, а не выборочно. Сделать это не сложно. Я напишу тебе пример, но не на 100% по твоему коду, тем не менее, думаю, ты поймёшь, что можешь сделать. Допустим, в переменной $dates хранится в виде текстовой строки даты, среди которых есть первая и последняя (считай, что это твоё $date[1]). Тогда перезаполнить можно так: Код (PHP): $dates = "'1','3','5','7','9','11','13','15','17','19','21','23','25','27','29'"; $dates = explode(',', $dates); // из строки создаём массив $first = (int) trim(array_shift($dates), " '"); // получаем первый элемент - он же первый день для этого списка $last = (int) trim(array_pop($dates), " '"); // получаем последний элемент - он же последний день для этого списка $dates = range($first, $last); // создаём новый массив, в котором будут присутствовать все дни от первого до последнего