Ссылка на элемент в массиве PHP - PullRequest
2 голосов
/ 04 мая 2009

Ответ не является $ array [0];

Мой массив настроен следующим образом

$array = array();
$array[7] =  37;
$array[19] = 98;
$array[42] = 22;
$array[68] = 14;

Я сортирую массив и пытаюсь получить максимально возможное совпадение после сортировки. Так что в этом случае $ array [19] = 98; Мне нужно только значение 98 обратно, и оно будет всегда находиться в первой позиции массива. Я не могу ссылаться, используя $ array [0], так как ключ 0 не существует. Ограничения скорости означают, что я не могу перебрать массив, чтобы найти наибольшее совпадение.

Там также должно быть лучшее решение, чем

foreach ( $array as $value )
{
    echo $value;
    break;
}

Ответы [ 6 ]

4 голосов
/ 04 мая 2009
$keys = array_keys($array);
echo $array[$keys[0]];

Или вы можете использовать функцию current () :

reset($array);
$value = current($array);
3 голосов
/ 04 мая 2009

Вам нужен первый ключ в массиве, если я правильно понял ваш вопрос:

$firstValue = reset($array);
$firstKey = key($array);
2 голосов
/ 04 мая 2009

Вы всегда можете сделать;

$array = array_values($array);

И теперь $ array [0] будет правильным ответом.

1 голос
/ 04 мая 2009

Если вам нужен первый элемент, который вы можете использовать array_shift , это ничего не зацикливает и возвращает только значение.

В вашем примере, однако, это не первый элемент, поэтому, похоже, в вашем примере / вопросе есть расхождение или ошибка в моем понимании.

0 голосов
/ 04 мая 2009
$array = array_values($array);
echo $array[0];
0 голосов
/ 04 мая 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...