2016-08-22 3 views
-3

Установите ключи на основе значений массива.Изменяет значения на основе ключа в php-массиве

$ids= array(1,2,3,5,7,8); 

$newkeys = array('hck','scr','lcss','ftbl','bsktbl','stbl'); 
$array = array_combine(array_map(function($el) use ($newkeys) { 
    return $newkeys[$el]; 
}, array_keys($ids)), array_values($ids)); 

//Show Value  
print_r($array); 
die; 

Что я хочу проверить свои идентификаторы массива, если значение имеет значение 1, чем заданная клавиша, ок и связанное с ним значением будет 1, если идентификаторы имеют 2 значения, то установите ключ в ЮКЖДАХ и его значение будет Scr. ... так далее ...

если мы имеем ids = array(1,3,7,8), то выход будет ниже

Array 
(
    [hck] => 1 
    [lcss] => 3 
    [bsktbl] => 7 
    [stbl] => 8 
) 
+0

Почему голос? – user6606700

ответ

3

попробовать это вам просто нужно создать массив для вашего ключевого значения refrence, то вы можете легко карте значения от этого массива до любого заданного входного массива идентификаторов

$ids= array(1,2,3,5,7,8); 
    $newkeys = array('hck','scr','lcss','ftbl','bsktbl','stbl'); 

    $keyValueArray = array(); 

    foreach($ids as $key=>$id) 
    { 
     $keyValueArray[$id] =$newkeys[$key]; 
    } 


    $inputArr = array(1,3,7,8) ; 
    $outputArr = array(); 

    foreach($inputArr as $id) 
    { 
     $outputArr[$keyValueArray[$id]] = $id; 
    } 
    echo "<pre>"; 
    print_r($outputArr); 
    echo "</pre>"; 

Я надеюсь, что это вам поможет.

+0

Три ответа и три разных интерпретации вопроса. :-) Я на самом деле думаю, что ваш правильный. – smarx

+0

хорошо, затем повысьте свой ответ;) –

Смежные вопросы