Доброго времени суток, коллеги. Есть код: Код (Text): $data_d = file_get_contents('запрос к API первого сайта'); $data_d = json_decode($data_d); foreach ($data_d->shots as $shots) { echo '<a target="_blank" href="' . $shots->url . '"><img src="' . $shots->image_teaser_url . '" /></a>'; } $data_b = file_get_contents('запрос к API второго сайта'); $data_b = json_decode($data_b, true); foreach ($data_b['projects'] as $projects) { echo '<a target="_blank" href="' . $projects['url'] . '"><img src="' . $projects['covers']['202'] . '" /></a>'; } Подскажите, пожалуйста, как сделать, чтоб был один вывод, а не два и плюс, чтоб было чередование?
придется копить данные в одном массиве, перемешивать его и потом выводить. перемешать можно в shuffle() тебе придетсядется решить к какому виду приводить данные - как в первом источнике или как во втором. только не проси написать за тебя весь код. делай сам, учись, расти.
не совсем понял почему именно перемешивать - а почему не так http://php.ru/manual/function.array-merge.html $data_d и $data_b это ведь два массива .. слить их и выдать значение Добавлено спустя 3 минуты 3 секунды: а все помедленней прочитал задачу - ну да сначала мерге а потом шафл
Делал так, проверял работу функции: Код (Text): $data = array_merge($data_d, $data_b); print_r($data); Не выводит вообще ничего. Хотя по отдельности print_r($data_d) и print_r($data_b) выводит массив нормально. При этом нужно еще как-то привести вывод к общему виду, а то в первом массиве вид $shots->url, а во втором уже $projects['url']. В этом вся сложность.
Массив первого API: stdClass Object ( [shots] => Array ( [0] => stdClass Object ( [id] => 1274635 [title] => Brushes for wireframing => [url=http://example.com]http://example.com [image_teaser_url] => http://example.com/teaser.png))) Массив второго API: Array ( [projects] => Array ( [0] => Array ( => [url=http://www.example.net/2]http://www.example.net/2 [covers] => Array ( [202] => http://example.com/teaser1.png [404] => http://example.com/teaser2.png ) ) ) )
Пока просто переделал для наглядности - что понять как скрестить ужика с ежиком ( массивы то совсем разные) ====1===== Код (Text): stdClass Object ( [shots] => Array ( [0] => stdClass Object ( [id] => 1274635 [title] => Brushes for wireframing [url] => http://example.com [image_teaser_url] => http://example.com/teaser.png))) =====2====== Array ( [projects] => Array ( [0] => Array ( [url] =>http://www.example.net/2 [covers] => Array ( [202] => http://example.com/teaser1.png [404] => http://example.com/teaser2.png ) ) ) )
Например в цикл, и проверить is_object || is_array, все можно сделать 1 выводом, только с паттернами. В цикле проверять.
Хм, а было ли решение... Добавлено спустя 2 минуты 51 секунду: Подумал распихать результат по чётным элементам массива: Код (Text): $rgResult = array(); $iKey = 0; foreach ($data_d->shots as $shots) { $rgResult[ $iKey ] = '<a target="_blank" href="' . $shots->url . '"><img src="' . $shots->image_teaser_url . '" /></a>'; $iKey += 2; } Но дальше не догадываюсь, что делать... Так же, посоветовали, что можно с помощью each выводить сразу из обоих массивов. Но будут сложности с логикой и представлением, а этого не нужно.
похоже это надо много выпить чтобы придумать как состыкануть гдето на подсознательном уровне я понимаючто из всех данных с 1 и 2 массива используются только 2 поля url и картика
Да, понятие абсолютно правильно. Не было смысла писать всю выдачу, так как она ну очень большая. На JS люди как-то делали это. Следовательно и на PHP можно.
Первый запрос к API: http://api.dribbble.com/shots/popular?per_page=12 Второй запрос к API: http://www.behance.net/v2/projects?api_key=wIQ3bMqZs2PkliEruYSXvuMFrs3YhdjZ Возможно ли это счастье как-то соединить? И вывод "url" (в обоих случаях) и "image_teaser_url" (в первом) и "covers" "202" (во втором).
Тебе Your дал правильную подсказку про is_object(). Каменты этой темы дают тебе всё, что нужно. Только переводи на PHP. http://qb7.ru/B0C4DD3C/lorvet.php
Это, конечно, все хорошо. И спасибо большое за советы. Но в примере, что Вы дали, каждый раз разный порядок вывода. А требуется, чтоб было чередование: первая_работа_первого_сайта, первая_работа_второго_сайта, вторая_работа_первого_сайта, вторая_работа_второго_сайта... ну и т.д.
минутку - мысль потихоньку рождается где то в заднем мозгу суть примерно такая - как вытащить из обоих json но так чтобы брались только нужные с\поля
а! ну дык ёлы-палы. ты про shuffle читал? и промолчал. Добавлено спустя 1 минуту 12 секунд: тогда shuffle() меняем на свою "умную" сортировку ))) http://qb7.ru/B0C4DD3C/shuffle.php - перемешиваются случайно http://qb7.ru/B0C4DD3C/periodic.php - один оттуда, другой отсюда и т.д. Добавлено спустя 29 минут 38 секунд: Еще одна подсказка: $i*2 $i*2+1
http://qb7.ru/B0C4DD3C/periodic.php че за фигня лезет ? какието картинки .. и вообше с этого сайта какая то муть
У меня показывает все как и должно быть. Спасибо за подсказки. Сейчас буду все это соединять вместе. Если у кого-то есть еще умные мысли, то пишите - лишними не будут. artoodetoo отдельное спасибо, за внушение уверенности, что все возможно сделать. ))
Слава, что тебя так взволновало? Добавлено спустя 1 минуту 39 секунд: если что, картинки из фидов, я за них не отвечаю )))
Да, картинки разных размеров, их еще кропить надо и оформлять html и css. Но это уже мелочи жизни. Главное сейчас сам вывод.
а тьфу ты ну ты - у меня седне в кабинете оч жарко - мозг плавится - никто не хочет открывать окошко. меня почемуто переклинило, что по ссылкам должен быть какойто хелп .. ну или текстовка .. а тут бах и картинки и никак не соображу что это ты просто у себя на хосте запустил скрипт