Якщо я маю:
$array = array( 'one' =>'value', 'two' => 'value2' );
як я отримую рядок one
назад від $array[1]
?
Відповіді:
Ти ні. Ваш масив не має ключа [1]
. Ви можете:
Створіть новий масив, який містить ключі:
$newArray = array_keys($array);
echo $newArray[0];
Але значення "одиниця" є $newArray[0]
, а не [1]
.
Ярлик буде:
echo current(array_keys($array));
Отримайте перший ключ масиву:
reset($array);
echo key($array);
Отримайте ключ, що відповідає значенню "значення":
echo array_search('value', $array);
Все залежить від того, що саме ви хочете зробити. Справа в тому, [1]
що не відповідає "одиниці" в будь-який спосіб, коли ви його повернете.
Якщо ви плануєте працювати лише з однією клавішею, ви можете зробити це за допомогою одного рядка, не зберігаючи масив для всіх ключів:
echo array_keys($array)[$i];
Або якщо вам це потрібно в циклі
foreach ($array as $key => $value)
{
echo $key . ':' . $value . "\n";
}
//Result:
//one:value
//two:value2
$array = array( 'one' =>'value', 'two' => 'value2' );
$keys = array_keys($array);
echo $keys[0]; // one
echo $keys[1]; // two
Ви можете зробити це таким чином:
function asoccArrayValueWithNumKey(&$arr, $key) {
if (!(count($arr) > $key)) return false;
reset($array);
$aux = -1;
$found = false;
while (($auxKey = key($array)) && !$found) {
$aux++;
$found = ($aux == $key);
}
if ($found) return $array[$auxKey];
else return false;
}
$val = asoccArrayValueWithNumKey($array, 0);
$val = asoccArrayValueWithNumKey($array, 1);
etc...
Не пробував код, але я впевнений, що він буде працювати.
Удачі!
Якщо це перший елемент, тобто $array[0]
ви можете спробувати:
echo key($array);
Якщо це другий елемент, тобто $array[1]
ви можете спробувати:
next($array);
echo key($array);
Я думаю, що цей метод слід використовувати, коли необхідним елементом є перший, другий або максимум третій елемент масиву. В інших випадках слід використовувати цикли, інакше читабельність коду зменшується.
Ключ функція допомогла мені і дуже просто:
Функція key () просто повертає ключ елемента масиву, на який в даний момент вказує внутрішній вказівник. Це ніяк не рухає покажчик. Якщо внутрішній вказівник вказує за кінець списку елементів або масив порожній, ключ () повертає NULL.
Приклад:
<?php
$array = array(
'fruit1' => 'apple',
'fruit2' => 'orange',
'fruit3' => 'grape',
'fruit4' => 'apple',
'fruit5' => 'apple');
// this cycle echoes all associative array
// key where value equals "apple"
while ($fruit_name = current($array)) {
if ($fruit_name == 'apple') {
echo key($array).'<br />';
}
next($array);
}
?>
Наведений вище приклад виведе:
fruit1<br />
fruit4<br />
fruit5<br />
Розширюючи відповідь Рама Дейна, ключова функція є альтернативним способом отримати ключ поточного індексу масиву. Ви можете створити таку функцію,
function get_key($array, $index){
$idx=0;
while($idx!=$index && next($array)) $idx++;
if($idx==$index) return key($array);
else return '';
}