在php中重新排列数组值

时间:2017-01-13 05:36:58

标签: php arrays

我有一个问题需要重新排列数组。这是我的最后一个数组:

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 个答案:

答案 0 :(得分: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);

注意: - 在数组中,如果相同的索引即将到来,则新数据将替换为旧数据。所以尝试第二个解决方案

答案 1 :(得分:0)

阅读此链接,可能会对您有所帮助

  

PHP - Rearrange array by specific index