Как вывести значение по номеру из отсортированного массива?

201
20 октября 2018, 08:30

Допустим отсортировали ассоциативный массив, теперь надо вывести значение по номеру

{"id":"84","iduser":"2","name":"4c4e367fa4fea0d449bc8cc2a.jpg","private":"0","path":"\/user\/0M\/0K\/2\/pictures\/","date":"1533662318","type":"photo"}
{"id":"85","iduser":"2","name":"803cd4ce6841823878f188a1c.jpg","private":"0","path":"\/user\/0M\/0K\/2\/pictures\/","date":"1533662317","type":"photo"}
{"id":"83","iduser":"2","name":"1a0f48b8bb51abf15818e37c7.jpg","private":"0","path":"\/user\/0M\/0K\/2\/pictures\/","date":"1533662314","type":"photo"}

Он отсортирован по юникс метке, теперь допустим нужно вывести 1 или второй элемент этого отсортированного массива, как это сделать?

Answer 1

Допустим отсортировали ассоциативный массив

Просто сортируйте без сохранения ключей.

$data = [
    'a' => ['id' => 1, 'k' => 3],
    'b' => ['id' => 2, 'k' => 1],
    'c' => ['id' => 3, 'k' => 4],
];
usort($data, function($a, $b){ return $a['k'] <=> $b['k'];});

for ($i = 0; $i < count($data); ++$i) {
    echo json_encode($data[$i]), PHP_EOL;
}
{"id":2,"k":1}
{"id":1,"k":3}
{"id":3,"k":4}

Того же можно добиться «сбросив» ключи:

 $data = array_values($data);
Answer 2

Если по ключам вывести элементы массива нет возможности - попробуйте следующие варианты:
1) функция array_shift.
2) комбинирование функций current и next.

READ ALSO
сбор массива из данных приходящих из бд

сбор массива из данных приходящих из бд

Нужно собрать один массив из данных пользователя, которые записаны в несколько разных таблиц, в некоторых таблицах есть несколько записей...

152
В логах обрезает параметры

В логах обрезает параметры

Как называется в phpini константа, которая позволяет увеличить ограничение на размер лога, чтобы он не обрезал параметры? Пример обрезанных...

149
Что значит в Laravel- е request()-&gt;about?

Что значит в Laravel- е request()->about?

Я не понимаю что делает код request()->about в Լaravel-е

199