Перейти к содержимому



Купить ссылку здесь
Фотография

[php] Как получить срез значений массива в новом массиве?

Форум ZiSMO.biz
php
  • Закрытая тема Тема закрыта
7
Сообщений в теме: 7

ONLINE Отправлено

makag
группа пользователя

    Black Buddha

  • Cообщений: 4 080
  • Друзей:9
  • Поинты: 1 382
  • Предупреждений: 0
  • Онлайн:135д 6ч 49м
708

Хочу получить список айди фотографий из фотоальбома в сообществе.

 

Через https://vk.com/dev/photos.getполучаю общий массив, в котором куча всего:

 

картинка ответ вк:

 

Скрытый текст

 

собственно массив как он есть в php:  http://ahlam.ru/index1/array.txt

 

К отдельному значению я могу добраться через:

['response']['0']['pid']

Но как обойти весь массив, забрать из него каждое из значений ['response']['0']['pid'], ['response']['1']['pid'] , ['response']['2']['pid'], ['response']['3']['pid']  ...  и  собрать из этих значений новый массив   -  не знаю / не умею.

 

Прошу намекнуть/ткнуть носом как это правильно сделать  (bandit)

 

 

 





4a7cb20e94b10a7690070ecb42078512.gif

    • 0
  • Наверх

OFFLINE Отправлено

BlackShadow
группа пользователя

    Уровень 1

  • Cообщений: 200
  • Друзей:7
  • Поинты: 11
  • Предупреждений: 70
20

pid - что это? там же id


    • 0
  • Наверх

ONLINE Отправлено

makag
группа пользователя

    Black Buddha

  • Cообщений: 4 080
  • Друзей:9
  • Поинты: 1 382
  • Предупреждений: 0
  • Онлайн:135д 6ч 49м
708

pid - что это? там же id

через веб версию сайта отдаёт как id

а в json (или хз как это правильно назвать) - этот ключ отдаётся уже как pid

 

собственно наглядно если - тут:  

http://ahlam.ru/index1/index.php

вбить:

https://vk.com/album-125903390_235649667

(или ссылку на фотоальбом другого сообщества - не суть важно)

- выдаст массив, именно как ["pid"]=> int(428025199)

 

сердцем подозреваю, что нужно делать обход через foreach (примерно как из примера здесь  http://ru.stackoverf...иков-сообщества

но поскольку руки у меня из неправильного места - пока что мои эксперименты успехом не увенчались ((


Сообщение отредактировал makag: 11 09 2016 - 23:06

4a7cb20e94b10a7690070ecb42078512.gif

    • 0
  • Наверх

OFFLINE Отправлено

Glor
группа пользователя

    NO MERCY

  • Cообщений: 11 011
  • Друзей:344
  • Поинты: 19 142
  • Предупреждений: 0
  • Онлайн:245д 3ч 30м
1 054

Регулярное выражение, не?

Поможет такая штука как preg_match_all()


Сообщение отредактировал Glor: 11 09 2016 - 23:11

    • 1
  • Наверх

OFFLINE Отправлено

BlackShadow
группа пользователя

    Уровень 1

  • Cообщений: 200
  • Друзей:7
  • Поинты: 11
  • Предупреждений: 70
20

['0'] - индекс пишется так: [0]


    • 1
  • Наверх

ONLINE Отправлено

makag
группа пользователя

    Black Buddha

  • Cообщений: 4 080
  • Друзей:9
  • Поинты: 1 382
  • Предупреждений: 0
  • Онлайн:135д 6ч 49м
708

Glor, BlackShadow мерси 

буду счас методом научного тыка с учётом полученных знаний продолжать -)

всем спасибо, через сутки отчитаюсь о результате  :)  чёт в голове появилось вроде как

 

спустя 2 часа update, получилось:

вкратце, примерно так:

$photos_get = vkapi('photos.get?owner_id='.$album_uid[0].'&album_id='.$album_uid[1].'&count=1000');
$jsondecode = json_decode($photos_get, true);
$raw_data = $jsondecode['response'];
foreach ($raw_data as $pid) {
    $pids[] = $pid[pid];
}

$pids - собственно массив id фоточек

 

 

спасибо!

вопрос решён.


Сообщение отредактировал makag: 12 09 2016 - 01:27

4a7cb20e94b10a7690070ecb42078512.gif

    • 0
  • Наверх

OFFLINE Отправлено

FTOH
группа пользователя

    Постоянный

  • Cообщений: 1 715
  • Друзей:72
  • Поинты: 3
  • Предупреждений: 70
226

через веб версию сайта отдаёт как id
а в json (или хз как это правильно назвать) - этот ключ отдаётся уже как pid

Потому что надо указывать версию в запросе. Если не указать, то отдается 3.0
t54D2sU.png
 
Скоро твои запросы перестанут работать (Ссылка)
LFyzo9T.png
 
Переделал твой пример.

$photos_get = vkapi('photos.get?owner_id='.$album_uid[0].'&album_id='.$album_uid[1].'&count=1000&v=5.53');
$jsondecode = json_decode($photos_get, true);
$pids = array_map('map', $jsondecode['response']);

function map($value){
    return $value['id'];
}

Постоянно использую эти функции: array_maparray_reduce и array_filter. Аналогичные есть в JS и C#
 
 

$photos_get = vkapi('photos.get?owner_id='.$album_uid[0].'&album_id='.$album_uid[1].'&count=1000');
$jsondecode = json_decode($photos_get, true);
$raw_data = $jsondecode['response'];
foreach ($raw_data as $pid) {
    $pids[] = $pid[pid];
}

Кавычки забыл поставить $pid['pid'];


Сообщение отредактировал FTOH: 12 09 2016 - 06:01

    • 1
  • Наверх

OFFLINE Отправлено

KemperenoК
группа пользователя

    smmquick.ru Продвижение ВК / INST

  • Cообщений: 43 325
  • Друзей:2951
  • Поинты: 23 750
  • Предупреждений: 0
  • Онлайн:378д 17ч 10м
2 154

Закрыто.
Ответ дан


ab84124cff58.gif 25.05 b556b5d2b359.gif 06.059deae410ff03.gif 28.06 30017a3c374d.gif 12.06

    • 0
  • Наверх