2016-05-17 4 views
-4

Добавлено вопрос несколько часов назад. Не удалось разобраться с решениями, поставленными таким образом, попробовал немного по-своему, теперь у меня есть что-то, но все же он не работает, как будто я хочу, чтобы он работал.acces первый элемент массива

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

$values = array(
    $aV=>$aP, 
    $bV=>$bP, 
    $cV=>$cP, 
    $dV=>$dP 
); 

тогда я sort его как этот `arsort (значения $);

результат Array ([geel] => 28 [groen] => 20 [rood] => 20 [blauw] => 12)

Теперь я хочу Acces первый/второй/tird/четвертый элемент передать его на Так что я хочу $values[0] быть первым элементом. В этом случае Geel 28. Но если я попытаюсь ответить $values[0], то он говорит Undefined offset: 0 (то же самое с 1/2/3 и т. Д.). Очевидно, потому что у меня нет [0], но как я могу установить [0] в первый элемент в массиве (который различен каждый раз. Значение geel не всегда [0], но мне нужен первый элемент (с наименьшим номером) до be [0], так что я могу echo $values[0] быть первым элементом массива с наименьшим номером

+2

[http://stackoverflow.com/questions/1921421/get-the-first-element-of-an-array](http://stackoverflow.com/questions/1921421/get-the-first-element -of-a-array) –

+0

ваш индекс [geel] не [0]. – RJParikh

+1

'$ values ​​= array_values ​​($ values)' – splash58

ответ

0

Поскольку ключ массива был задан как geel, groen..you не может получить доступ, как $ values ​​[0], $ values ​​[1 .]

Вы должны войти как:

Первый элемент: $values['geel'] Второй Elemen t: $values['groen'] и т.п ....

+0

I знать. Я обновил свой вопрос. Но как я могу получить первый элемент массива как '[0]'. потому что 'geel' 'groen' и т. д. не всегда находятся в одном и том же положении массива.Мне нужно вызвать первый элемент, второй и т. Д., Каждый из которых каждый раз по-разному –

+0

просто перейдите с # splash58 в свой комментарий к сообщению –

-1

Не используйте индикатор «стрелка», чтобы сделать ваши массивы, вы, вероятно, хотите сделать это:

$values = array(
    $aV . ' ' . $aP, 
    $bV . ' ' . $bP, 
    $cV . ' ' . $cP, 
    $dV . ' ' . $dP, 
); 

То, что вы сейчас делаете, создает массив, который выглядит как этот

[ 
    'Geel' => 28 
    // etc. 
] 

Если вы на самом деле просто хотел, чтобы получить значение первого элемента, который вы могли бы использовать array_shift

+0

Мне нужно получить первый, второй, третий и последний элемент. Каждый раз –

1

Если вам нужен доступ к индексу и значение вашего массива, то цикл Еогеасп может сделать это для вас

$values = array($aV=>$aP, $bV=>$bP, $cV=>$cP, $dV=>$dP); 

foreach ($values as $idx => $val) { 
    echo "Index is $idx and value is $val"; 
} 

С помощью этого массива вы дали в качестве примера

Array ([geel] => 28 [groen] => 20 [rood] => 20 [blauw] => 12) 

выход будет

Index is geel and value is 28 
Index is groen and value is 20 
Index is rood and value is 20 
Index is blauw and value is 12 
0

Для доступа оба значения и ключи в качестве числового индекса вам необходимо использовать array_values и array_keys

Массив:

$values = array(
    $aV=>$aP, 
    $bV=>$bP, 
    $cV=>$cP, 
    $dV=>$dP 
); 

Для значений:

$new_values = array_values($values); 

Результат:

array($aP, $bP, $cP, $dP);

Для ключей:

$keys = array_keys($values); 

Результат:

array($aV, $bV, $cV, $dV);

Теперь вы можете получить доступ как массив в качестве цифровых клавиш, как: $keys[0] или $new_values[0] и так далее.

Смежные вопросы