2013-08-23 1 views
1

У меня есть два массиваОбновление массива на основе другого массива в PHP

$groeperingen Массива содержит короткие коды и полные имена и массив $groep cointains только шорткоды.

Я хочу, чтобы все короткие коды в $groep были заменены на полное имя.

Массив $groepering выглядит следующим образом:

Array 
(
    [019] => Regio 019a 
    [013] => Regio 013 
    [011] => Regio alpha 
    [AR] => ArmUsers 
    [CU] => ComputerUsers 
    [GA] => Gamers 
    [OP] => Opensource 
) 

Массив $groep выглядит следующим образом:

Array 
(
    [0] => CU 
    [1] => GA 
    [2] => OP 
) 

Как я могу это сделать?

ответ

2

Используйте array_map для применения функции к каждому элементу массива $groep.

<?php 

$groep = Array(
    "CU", 
    "GA", 
    "OP" 
); 
$groepering = Array(
    "019" => "Regio 019a", 
    "013" => "Regio 013", 
    "011" => "Regio alpha", 
    "AR" => "ArmUsers", 
    "CU" => "ComputerUsers", 
    "GA" => "Gamers",     
    "OP" => "Opensource" 
); 

$result = array_map(function ($x) use ($groepering) {  
    return $groepering[$x]; 
}, $groep); 

print_r($result); 

Содержание $result является:

Array 
(
    [0] => ComputerUsers 
    [1] => Gamers 
    [2] => Opensource 
) 

Посмотри здесь работает: http://phpfiddle.org/main/code/7sv-1kp

0

Это создаст новый массив.

$groeperingen = array(
        '019' => 'Regio 019a', 
        '013' => 'Regio 013', 
        '011' => 'Regio alpha', 
        'AR' => 'ArmUsers', 
        'CU' => 'ComputerUsers', 
        'GA' => 'Gamers', 
        'OP' => 'Opensource' 
       ); 
$groep = array('CA', 'GA', 'OP'); 

function changeValue($ary, $basedOnAry){ 
    foreach($ary as $i => $v){ 
    $a[$i] = $basedOnAry[$v]; 
    } 
    return $a; 
} 

$newArray = changeValue($groep, $groeperingen); 
Смежные вопросы