13

Получить первый элемент массива

12

У меня есть массив:

array( 4 => 'apple', 7 => 'orange', 13 => 'plum' )

Я хотел бы получить первый элемент этого массива. Ожидаемый результат: строка apple.

Одно из требований: это не должно быть сделано с помощью передачи по ссылке, поэтому array_shift не подойдет.

Как я могу это сделать?

5 ответ(ов)

16

Ответ оригинальный, но затратный (O(n)):

array_shift(array_values($array));

Если вам нужно сделать это за O(1):

array_pop(array_reverse($array));

Другие варианты использования и т.д.

Если модификация массива (в смысле сброса указателей массива) не является проблемой, вы можете использовать:

reset($array);

Это должно быть теоретически более эффективно. Если требуется "копия" массива, можно использовать:

array_shift(array_slice($array, 0, 1));

С PHP 5.4+ (но это может привести к ошибке индекса, если массив пуст):

array_values($array)[0];
3

Вы можете получить значение и ключ первого элемента массива в PHP с помощью функций reset() и key(). Вот пример кода:

$first_value = reset($array); // Получаем значение первого элемента
$first_key = key($array); // Получаем ключ первого элемента

Функция reset() перемещает внутренний указатель массива на первый элемент и возвращает его значение. Функция key() возвращает ключ текущего элемента массива, который после вызова reset() будет первым элементом. Убедитесь, что массив не пустой перед вызовом этих функций, чтобы избежать неожиданных результатов.

1

Если вы не хотите потерять текущее положение указателя в массиве, просто создайте его alias (псевдоним). Вот пример:

$arr = $array = array( 9 => 'apple', 7 => 'orange', 13 => 'plum' );
$alias = &$array; // Создаем псевдоним для массива
echo reset($arr); // выводит 'apple'
echo $alias[7]; // Выводит 'orange', указатель в $arr не изменился

Таким образом, используя псевдоним $alias, можно долго работать с исходным массивом $array, не меняя позицию указателя в оригинальном массиве $arr.

0

Вы можете получить N-ый элемент массива с помощью конструкции языка list:

// Первый элемент
list($firstItem) = $yourArray;

// Первый элемент из массива, который возвращает функция
list($firstItem) = functionThatReturnsArray();

// Второй элемент
list( , $secondItem) = $yourArray;

С помощью функции array_keys вы можете сделать то же самое для ключей:

list($firstKey) = array_keys($yourArray);
list( , $secondKey) = array_keys($yourArray);

Эти методы позволяют удобно извлекать нужные элементы и ключи из массива.

0

Чтобы получить первое значение массива $array в PHP 5.4 и выше, вы можете использовать функцию array_values, которая возвращает все значения массива в виде нового массива. Затем вы можете обратиться к первому элементу этого массива, используя индекс [0]. Вот так это выглядит:

$firstValue = array_values($array)[0];

Имейте в виду, что если в массиве $array нет значений, это приведет к ошибке доступа к несуществующему индексу. Чтобы избежать этого, вы можете проверить, не пустой ли массив перед попыткой получить первое значение:

$firstValue = !empty($array) ? array_values($array)[0] : null;

В этом примере, если массив пустой, в переменной $firstValue будет null.

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь