PHP: Печать ассоциативного массива

В PHP у меня есть ассоциативный массив вроде этого

$a = array('who' => 'one', 'are' => 'two', 'you' => 'three');

Как написать цикл foreach, который проходит через массив и получить доступ к ключу и значению массива, чтобы я мог ими манипулировать (другими словами, я мог бы получить who и one, назначенные двум переменные $key и $value?

Ответы

Ответ 1

foreach ($array as $key => $value) {
    echo "Key: $key; Value: $value\n";
}

Ответ 2

@Thiago уже упоминает способ доступа к ключу и соответствующему значению. Это, конечно, правильное и предпочтительное решение.

Однако, поскольку вы говорите

чтобы я мог ими манипулировать

Я хочу предложить два других подхода

  • Если вы хотите только манипулировать значением, обратитесь к нему в качестве ссылки

    foreach ($array as $key => &$value) {
      $value = 'some new value';
    }
    
  • Если вы хотите манипулировать как ключом, так и значением, вы должны пойти другим путем

    foreach (array_keys($array) as $key) {
      $value = $array[$key];
      unset($array[$key]); // remove old key
      $array['new key'] = $value; // set value into new key
    }