Ответ 1
foreach ($array as $key => $value) {
echo "Key: $key; Value: $value\n";
}
В PHP у меня есть ассоциативный массив вроде этого
$a = array('who' => 'one', 'are' => 'two', 'you' => 'three');
Как написать цикл foreach
, который проходит через массив и получить доступ к ключу и значению массива, чтобы я мог ими манипулировать (другими словами, я мог бы получить who
и one
, назначенные двум переменные $key
и $value
?
foreach ($array as $key => $value) {
echo "Key: $key; Value: $value\n";
}
@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
}