pdimas
Интересующийся
Offline
|
|
« : 08-01-2011 16:57 » |
|
Что то я уже окончательно запутался Как получить массив $s = array(4,5,6,8); <?php
$a = array(1,2,3,4,5); $b = array(2,3,6,8,1); foreach ($b as $key => $s) { if (array_key_exists($key, $a)) unset ($b [$s]); echo $s; } ?>
|
|
|
Записан
|
|
|
|
baldr
|
|
« Ответ #1 : 08-01-2011 17:48 » |
|
pdimas, пример отсюда: http://ru2.php.net/manual/en/function.array-diff.php#101613<?php
function fullArrayDiff($left, $right) { return array_diff(array_merge($left, $right), array_intersect($left, $right)); }
$a = array(1,2,3,4,5); $b = array(2,3,6,8,1);
$c=fullArrayDiff($a, $b);
print "<pre>"; print_r($c); print "</pre>";
?> Или так: <?php
$a = array(1,2,3,4,5); $b = array(2,3,6,8,1);
$c=array_merge(array_diff($a, $b), array_diff($b, $a));
print "<pre>"; print_r($c); print "</pre>";
?>
|
|
« Последнее редактирование: 08-01-2011 17:51 от baldr »
|
Записан
|
Приличный компьютер всегда будет стоить дороже 1000 долларов, потому что 500 долларов - это не вполне прилично
|
|
|
pdimas
Интересующийся
Offline
|
|
« Ответ #2 : 08-01-2011 17:54 » |
|
Ух ты Большое спасибо!!!!
|
|
|
Записан
|
|
|
|
baldr
|
|
« Ответ #3 : 08-01-2011 17:57 » |
|
pdimas, можно сделать и вручную, как делал ты, но перед этим нужно будет сделать array_merge().
|
|
|
Записан
|
Приличный компьютер всегда будет стоить дороже 1000 долларов, потому что 500 долларов - это не вполне прилично
|
|
|
pdimas
Интересующийся
Offline
|
|
« Ответ #4 : 08-01-2011 18:58 » |
|
Да все равно что то у меня не получаестя А как сравнить масив $row c $a и сделать то же самое <?php require_once ('test_c.php'); $query = "SELECT id, date, time FROM my_table order by id"; $result = mysql_query($query); while ($row = mysql_fetch_array($result, MYSQL_NUM)){ printf("id: %s date: %s time: %s<br/>", $row[0], $row[1], $row[2]);}
$a = array('09:00', '10:00', '11:00'); ?>
|
|
|
Записан
|
|
|
|
baldr
|
|
« Ответ #5 : 08-01-2011 19:06 » |
|
pdimas, здесь ты будешь сравнивать уже строки - в первую очередь позаботься о том, чтобы время (или дата?) было в одном формате. Далее - если ты хочешь сравнивать массивы, то тебе нужно их сформировать, для этого вот тебе подсказка: $all_times=array(); while ($row = mysql_fetch_array($result, MYSQL_NUM)) { $all_times[]=$row[2]; }
// Здесь имеем массив $all_times, содержащий все значения 'time' из результата запроса Еще способ - сразу выбирать из базы только нужные строки - с помощью условия в WHERE в виде " time in ('09:00:00', '10:00:00', '11:00:00') ". Это так - подсказки... К тому же я не знаю какой формат полей в базе.
|
|
|
Записан
|
Приличный компьютер всегда будет стоить дороже 1000 долларов, потому что 500 долларов - это не вполне прилично
|
|
|
pdimas
Интересующийся
Offline
|
|
« Ответ #6 : 08-01-2011 19:13 » |
|
baldr, а если мне надо связать время с датой Т.е. для одной даты не может быть одинакового времни id| date | time 1 | 11.12.12 | 9:00 2 | 11.12.12 | 10:00 3 | 12.12.12 | 9:00 4 | 12.12.12 | 10:00 Я хотел забить все возможное время в массив и потом сравнивать массивы и исключать уже используемое время для выбранной даты
|
|
|
Записан
|
|
|
|
baldr
|
|
« Ответ #7 : 08-01-2011 19:29 » |
|
pdimas, в MySQL есть поле типа DATETIME - используй его для хранения связанного даты-времени. И сформулируй подзадачу, пожалуйста, поскольку не совсем понятно что ты хочешь сделать в итоге.
|
|
|
Записан
|
Приличный компьютер всегда будет стоить дороже 1000 долларов, потому что 500 долларов - это не вполне прилично
|
|
|
pdimas
Интересующийся
Offline
|
|
« Ответ #8 : 08-01-2011 19:40 » |
|
Есть база в которой: id, date (дата вбивается в базе ручками), time (выбирается из списка скажем 09:00, 10:00, 11:00 и тд) Т.е. например: если у нас для какой то даты (например 12.12.12) уже установленно время (например 09:00), то для этой же даты (12.12.12) нельзя больше выбрать это время (09:00) а остались все остальные значения времени (10:00, 11:00 и тд). Из списка убрать уже выбранные значения времени для этой даты
|
|
|
Записан
|
|
|
|
baldr
|
|
« Ответ #9 : 08-01-2011 19:49 » |
|
Мда.. Ну ок, если исходить из такой задачи, то, пожалуй, твой подход можно использовать - как выбрать массив времен из строк результата я тебе показал - теперь осталось немного..
|
|
|
Записан
|
Приличный компьютер всегда будет стоить дороже 1000 долларов, потому что 500 долларов - это не вполне прилично
|
|
|
pdimas
Интересующийся
Offline
|
|
« Ответ #10 : 08-01-2011 19:56 » |
|
baldr, Ага Спасибо тебе большое!!! Буду дальше думать.
|
|
|
Записан
|
|
|
|
|