2014-11-28 3 views
0

У меня есть 2 массива. То, что я пытаюсь сделать, это заменить ключи массива $ choice соответствующими ключами данных $PHP изменения ключей массива с значениями ключа из другого массива

Это то, что я ожидаю увидеть. Я надеюсь, что это имеет смысл

$choices = array(
    'fruits' => array(
     'Red Apple' => '', 
     'Yellow Banana' => '', 
     'Orange Orange' => '', 
    ), 
    ... 
    ... 
); 

и это мой код

$data = array(
    'fruits' => array(
     'apple' => 'Red Apple', 
     'banana' => 'Yellow Banana', 
     'orange' => 'Orange Orange', 
    ), 
    'vegetables' => array(
     'potato' => 'Brown Potato', 
     'carrot' => 'Orange Carrot', 
     'cabbage' => 'Green Cabbeage', 
    ), 
    'vehicles' => array(
     'car' => 'Small Car', 
     'plane' => 'Large Plane', 
     'train' => 'Medium Train', 
    ) 
); 

$choices = array(
    'fruits' => array(
     'apple' => 'gjhgfj', 
     'banana' => 'gjfgjfg', 
     'orange' => 'gfjfgjfg' 
    ), 
    'vegetables' => array( 
     'potato' => 'gjfgj', 
     'carrot' => 'gjfgj', 
     'cabbage' => 'gjfgj' 
    ), 
    'vehicles' => array(
     'car' => 'gjfgj', 
     'plane' => 'gfjgfjfgj', 
     'train' => 'gjfgjghj' 
    ) 
); 

$choice = 'fruits'; 

if(array_key_exists($choice, $choices)) { 
    $array = $choices[$choice]; 

    //this is where i want to swap array keys 
} 

UPDATE

на основе @ Андреевский ответ, это то, что я сейчас

if(array_key_exists($choice, $choices)) { 
    $array = $choices[$choice]; 

    //this is where i want to swap array keys 
    for ($i = 0; $i < count($choices); $i++) { 
     $array[$i] = array_combine(array_keys($data[$i]), $array[$i]); 
    } 
} 
+0

вы можете использовать array_flip Http: // php.net/manual/en/function.array-flip.php – codinginsane

ответ

0

Возможно, что-то вроде этого:

foreach ($data as $key => $val){ 
    $choices[$key] = $val; 
    array_flip($choices[$key]); 
} 

с array_combine и array_flip будет работать

Edited, а не 100% уверен, что вы пытаетесь достичь, но это может помочь

+0

Я получаю 2 ошибки. 'Warning: array_keys() ожидает, что параметр 1 будет массивом, null given' и' Примечание: неопределенное смещение: 'для каждой строки – AdRock

+0

у вас есть такое же количество массивов в данных' $ data', как в '$ options' ? – andrew

+0

Да. Я просто сократил код – AdRock

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