2017-01-13 4 views
0

У меня есть проблема переставить array.This мой окончательный массив:Перестановка значение массива в PHP

Array 
(
    [5833261e-dc14-48e3-9ee1-682a7f000201] => Array 
     (
      [344] => apple - 344 
      [345] => apple - 345 
      [acc_name] => Apple 1233 - acc_name 
     ) 

    [58332069-fab4-44c7-9ac9-487b7f000201] => Array 
     (
      [343] => apple 123456 - 343 
      [acc_name] => Orange Test - acc_name 
     ) 
) 

Я хочу, чтобы изменить это нравится ниже:

Array 
    (
     [Apple 1233 - acc_name] => Array 
      (
       [344] => apple - 344 
       [345] => apple - 345 
      ) 

     [Orange Test - acc_name] => Array 
      (
       [343] => apple 123456 - 343     
      ) 
    ) 

Так ребята могут вам пожалуйста, достигните этого выходного массива.

ответ

2

Вы можете сделать это, как показано ниже: -

$new_array = array(); 
foreach ($array as $key=>$val){ 
$acc_name = $val['acc_name']; 
unset($array[$key]['acc_name']); 
    $new_array[$acc_name] = $array[$key]; 
} 
echo "<pre/>";print_r($new_array); 

https://eval.in/715323

Примечание: - После завершения вы можете назначить этот новый массив к исходному массиву как $array = $new_array

Согласно комментарии сделать одну вещь: -

$new_array = array(); 
foreach ($array as $key=>$val){ 
$acc_name = $val['acc_name']; 
unset($array[$key]['acc_name']); 
    $new_array[$acc_name][] = $array[$key]; 
} 
echo "<pre/>";print_r($new_array); 

Примечание: - В массиве если приходят те же самые индексы, то новые данные заменяют старые. Поэтому попробуйте второе решение

+0

Спасибо, он работает хорошо. Но он удаляет часть внутреннего массива. Я не знаю, почему это происходит? –

+0

Я получил его. Он перезаписывает те же массивы acc_name. Как его решить. @ Anant –

+0

@sabarik проверить измененный ответ –

0

Прочитайте эту ссылку, может быть, это будет полезно для вас

PHP - Rearrange array by specific index

+0

, спасибо .. Но мне нужно, чтобы последнее значение внутреннего массива переместилось в значение моего основного массива. –

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