0 / 0 / 2
Регистрация: 31.12.2014
Сообщений: 226
1

заменить ключи массива ключами другого

14.02.2016, 17:21. Показов 3563. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток, возникла такая задача, не могу никак разобраться, как сделать замену ключей массива на ключи из другого массива на выходе может и строка получится, массив не определенного размера, значит придется использовать цикл, набросал что то, но где то запутался, не понимаю, помогите разобраться пожалуйста
PHP
1
2
3
4
5
6
7
8
9
10
$row = array("rumwhite"=>"40","cola"=>"100")//могут быть и другие значения, то есть получается сменить 2 ключа
$rusalco = array("ром белый"=>"rumwhite","джин"=>"jin", "кола"=>"cola", "тоник"=>"tonic");// массив ключи которого, должны стать ключами $row
$rualco = array_keys($rusalco);
 foreach($row as $key => $value) 
 {
if($rualco==$key) {
$alco= array_combine($rualco, $value);;
}
echo "$alco";      
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.02.2016, 17:21
Ответы с готовыми решениями:

Как проверить вхождение ключей одного массива в ключи другого массива?
Есть два массива $arrayWord = , 1=>, 2=>, 3=> ]; ...

Заменить ключи массива
есть массив Array ( => Array ( => 122611 => 4022 ...

Заменить элементы двумерного массива из другого масива
Заменить элементы двумерного массива из другого масива <?php $arr1=array( ...

Как вытянуть с другого сайта мета-ключи,описание?
Интересует такой вопрос как можно вытянуть мета теги к примеру <title> вывести на другой сайт.К...

4
Эксперт PHP
3851 / 3196 / 1343
Регистрация: 01.08.2012
Сообщений: 10,820
14.02.2016, 17:23 2
Какой результат в вашем примере должен получиться? Какие ключи/значения результирующего массива?
1
Hello Kitty
690 / 562 / 402
Регистрация: 12.02.2016
Сообщений: 1,436
Записей в блоге: 1
14.02.2016, 17:27 3
Лучший ответ Сообщение было отмечено n0kk как решение

Решение

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$row = array("rumwhite"=>"40","cola"=>"100");//могут быть и другие значения, то есть получается сменить 2 ключа
$rusalco = array("ром белый"=>"rumwhite","джин"=>"jin", "кола"=>"cola", "тоник"=>"tonic");// массив ключи которого, должны стать ключами $row
 
$rv = array_flip($rusalco);
$rowC = $row;
foreach($rowC as $k=>$v) {
    if ( isset($rv[$k]) ) {
        $row[ $rv[$k] ] = $v;
        unset($row[ $k ]);
    }
}
 
print_r( $row );
print_r( $rusalco );
Добавлено через 31 секунду
http://sandbox.onlinephpfuncti... 052ba0918e
1
Фрилансер
Эксперт JSЭксперт HTML/CSSЭксперт PHP
1846 / 1342 / 599
Регистрация: 12.01.2011
Сообщений: 5,432
14.02.2016, 17:38 4
PHP
1
2
3
4
5
6
7
8
<?php
    $arr1 = ["ключ1"=>"s1","ключ2"=>"s2","ключ3"=>"s3"];
    $arr2 = ["ключ5"=>"s3","ключ6"=>"s4","ключ7"=>"s5"];
    $a = array_keys($arr1);
    $b = array_values($arr2);
    $c = array_combine($a,$b);
    print_r($c);
    ?>
Добавлено через 1 минуту
Цитата Сообщение от n0kk Посмотреть сообщение
массив не определенного размера,
Пссс..
1
0 / 0 / 2
Регистрация: 31.12.2014
Сообщений: 226
14.02.2016, 19:49  [ТС] 5
Jodah, на выходе должен получится массив с данными из основного массива и заменеными ключами из второго массива, но ключи меняются только те которые равны значению второго массива, например
PHP
1
2
$row = array("rumwhite"=>"40","cola"=>"100")//могут быть и другие значения, то есть получается сменить 2 ключа
$rusalco = array("ром белый"=>"rumwhite","джин"=>"jin", "кола"=>"cola", "тоник"=>"tonic")
меняются ключи rumwhite, cola на ключи ром белый, кола

Добавлено через 2 минуты
Azdeman, первый массив не будет равен второму, поэтому если так писать добавятся лишние ключи

Добавлено через 9 минут
WhiteMind, спасибо большое за наводку, то что нужно, приведу в удобочитаемый вид для пользователя и готово
0
14.02.2016, 19:49
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.02.2016, 19:49
Помогаю со студенческими работами здесь

Создать хеш-таблицу со случайными целыми ключами и удалить из него записи с чётными ключами
Помогите пожалуйста создать хеш-таблицу со случайными целыми ключами и удалить из него записи с...

Как заменить ключи в массиве
Здравствуйте, есть массив: array(2) { =&gt; string(5) &quot;brand&quot; =&gt; string(8)...

Запуск другого приложения с "ключами"
Уважаемые, подскажите по возможности. Нужно из моего приложения запустить другое, но с одним или...

Элементы столбцов содержащих менее 10 положительных элементов заменить на элементы из другого массива
Нужно сделать в форме. Дана целочисленная матрица A(n x n). Все элементы тех столбцов, у которых...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru