[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Смена ключей в ассоциативном массиве
jumper_dev
Добрый день, допустим есть ассоциативный массив в котором нужно поменять ключи на другое значение
Пример...

Array
(
[
big] => big
[node] => node
[one] => one
[user] => user
)

Вот пример кода как я это делал но он почему то мне всего лишь выводит последнею пару из массива.

$dir = $this->dir;
if (!empty($dir)) {
for ($a = 0; $a < count($dir); $a++) {
$keys[$a] = 'name';
foreach ($keys as $val) {
foreach ($dir as $v) {
$arr[$val] = $v;
}
}
}

return $arr;
}

Еще так пробовал

$dir = $this->dir;
if (!empty($dir)) {
for ($a = 0; $a < count($dir); $a++) {
$keys[$a] = 'name';
foreach ($dir as $val) {
$ar[$val] = $keys[$a];
$arr = array_flip($ar);
}
}

print_r($arr);
}

и еще один пример...

$dir = $this->dir;
if (!empty($dir)) {
for ($a = 0; $a < count($dir); $a++) {
$keys[$a] = 'name';
}
$comb = array_combine(array_values($keys), array_keys($dir));
print_r($comb);
}

все равно выводит только последнею пару.

Array
(
[
name] => user
)

Что не так я делаю?



Спустя 56 минут, 41 секунда (15.03.2011 - 15:27) sergeiss написал(а):
Не особо вникал в код... Но, по-моему, тут надо использовать специально для этого сделанную функцию.
Цитата
array_splice — Remove a portion of the array and replace it with something else

Спустя 21 минута, 10 секунд (15.03.2011 - 15:48) Ulan написал(а):
это потому что циклом ты получаешь массив типа
0 => 'name'
1 => 'name'
2 => 'name'
3 => 'name'
и т.д.
а потом пытаешься эти вот все 'name' сделать ключами. а массив не может иметь одинаковых ключей. потому сохраняется только последняя пара ключ => значение.
попробуй сделать так :
$keys[$a] = 'name' . $a;

Спустя 22 минуты, 26 секунд (15.03.2011 - 16:10) Trianon написал(а):
Цитата (jumper_dev)
допустим есть ассоциативный массив в котором нужно поменять ключи на другое значение
Пример...


Array
(
  [big] => big
  [node] => node
  [one] => one
  [user] => user
)


непонятен, как пример, так и сама задача.

Спустя 8 минут, 1 секунда (15.03.2011 - 16:18) jumper_dev написал(а):
Цитата (Trianon @ 15.03.2011 - 13:10)
Цитата (jumper_dev)
допустим есть ассоциативный массив в котором нужно поменять ключи на другое значение
Пример...


Array
(
  [big] => big
  [node] => node
  [one] => one
  [user] => user
)


непонятен, как пример, так и сама задача.

Это пример массива в котором нужно изменить его ключи.

Спустя 33 минуты, 7 секунд (15.03.2011 - 16:52) Trianon написал(а):
а массив с новыми ключами где?
Менять-то на что?

Спустя 14 минут, 6 секунд (15.03.2011 - 17:06) jumper_dev написал(а):
Цитата (Trianon @ 15.03.2011 - 13:52)
а массив с новыми ключами где?
Менять-то на что?

Если код почитать там все понятно, но уже сказали что одинаковых ключей не может быть.


_____________
Как повысить рождаемость на планете? - Заставить Microsoft выпускать презервативы!
Разъяренный Админ не нервно моргает, а материт вас, используя двоичный код.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.