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

в PHP, у меня есть ассоциативный массив такой

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

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

2 ответов


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

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

однако, потому что вы говорите

Так что я могу манипулировать ими

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

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

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

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