2013-11-07 3 views
0

Как запустить array_map в трехмерном массиве? Где я хочу «очистить» самый внутренний массив?array_map triple dimension array

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

Array 
(
    [1] => Array 
     (
      [1] => Array 
       (
        [cat] => Hello! 
        [url] => hello 
       ) 

      [5] => Array 
       (
        [cat] => Good job! 
        [url] => good-job 
       ) 

    [2] => Array 
     (
      [2] => Array 
       (
        [cat] => How are you? 
        [url] => how-are-you 
       ) 

      [6] => Array 
       (
        [cat] => Running shoes 
        [url] => running-shoes 
       ) 
     ) 
) 

Я хочу, чтобы сделать его выглядеть следующим образом:

Array 
(
    [1] => Array 
     (
      [1] => Array 
       (
        [cat] => Hello! 
        [url] => hello 
       ) 

      [2] => Array 
       (
        [cat] => Good job! 
        [url] => good-job 
       ) 

    [2] => Array 
     (
      [1] => Array 
       (
        [cat] => How are you? 
        [url] => how-are-you 
       ) 

      [2] => Array 
       (
        [cat] => Running shoes 
        [url] => running-shoes 
       ) 
     ) 

)

Это решение Reset keys of array elements in php? "просто" работает на буксирных diemensional массивов, если Я не ошибаюсь.

+1

Вы действительно хотите, чтобы массивы с номерами '1' и' 2', а не '0' и' 1'? –

ответ

0

вы могли бы написать небольшую функцию, чтобы сделать это с array_map:

function mappingfunction($array){ 
    $remappedarray = array(); 
    foreach($array as $layer){ 
     $remappedarray[] = array_map('array_values', $array); 
    } 

    return $remappedarray; 
} 

если вы хотите сохранить ключи:

function mappingfunction($array){ 
     $remappedarray = array(); 
     foreach($array as $key => $layer){ 
      $remappedarray[$key] = array_map('array_values', $array); 
     } 

     return $remappedarray; 
    } 

непроверенная, но должен направить вас в правильном направлении.

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