PHP получает первое и четвертое значение ассоциативного массива

0

У меня есть ассоциативный массив, $teams_name_points. Длина массива неизвестна.

Как получить доступ к первому и четвертому значению, не зная ключ этого массива самым простым способом?

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

$name1 = "some_name1";
$name2 = "some_name2";
$teams_name_points[$name1] = 1;
$teams_name_points[$name2] = 2;

и т.п.

Я хочу сделать что-то вроде индексированного массива:

for($x=0; $x<count($teams_name_points); $x++){
    echo $teams_name_points[$x];
}

Как мне это сделать?

  • 0
    возможный дубликат PHP: получить n-й элемент ассоциативного массива
  • 2
    Что означают «первый» и «четвертый» в контексте ассоциативного массива? Они не имеют числовой индексации, поэтому нет особого порядка, кроме того, как элементы были записаны в массив. Похоже, у вас в основном плохая структура данных, которая сформирована не так, как вам нужно.
Показать ещё 3 комментария
Теги:
arrays

4 ответа

6
Лучший ответ

использовать array_keys?

$keys = array_keys($your_array);

echo $your_array[$keys[0]]; // 1st key
echo $your_array[$keys[3]]; // 4th key
  • 0
    Спасибо, сделал трюк
3

Вы можете использовать array_values который даст вам числовой индексный массив.

$val = array_values($arr);
$first = $val[0];
$fourth = $val[3]
2

В дополнение к array_values, чтобы выполнить цикл, пока вы показываете:

foreach($teams_name_points as $key => $value) {
    echo "$key = $value";
}
0

Вы можете использовать функцию array_keys, такую как

//Get all array keys in array
$keys = array_keys($teams_name_points);


//Now get the value for 4th key
//4 = (4-1) --> 3
$value = $teams_name_points[$keys[3]];

Теперь вы можете получить все значения как существующие

$cnt = count($keys);
if($cnt>0)
{
     for($i=0;$i<$cnt;$i++)
     {
          //Get the value
          $value = $team_name_points[$keys[$i]];
     }
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню