Возврат ключа массива и значения из упорядоченного числа

Я хочу вернуть и ключ, и значение элемента массива, зная только их численно упорядоченный номер.

Есть ли лучший способ, чем использовать эти две функции?

$num = '3';
$array = [
        'fish' => 'blue',
        'monkey' => 'green',
        'pig' => 'blue',
        'cat' => 'yellow',
];

echo array_values($array)[$num]; // yellow
echo array_keys($array)[$num]; // cat

2 ответа

Решение

Конечно, array_slice ()

$num = '3';
$array = [
        'fish' => 'blue',
        'monkey' => 'green',
        'pig' => 'blue',
        'cat' => 'yellow',
];


$newArray = array_slice($array, $num, 1);
var_dump($newArray);

отлично работает для ассоциативных массивов

Вот вариант с foreach петля

$count = 0;
foreach ($array as $key => $value){
     if($count == 3){
          echo $key.' '.$value;
     }
     $count++;
}

Но ваш нынешний метод, вероятно, лучше.

Другие вопросы по тегам