在PHP中更改数组键

时间:2014-05-24 09:18:48

标签: php arrays

我有一个看起来像这样的数组

Array
(
[1] => Array
    (
        [0] => asdasd
        [company] => asdasd
        [1] => ASDSADASD
        [firstname] => ASDSADASD
        [2] => ASDSAD
        [lastname] => ASDSAD
        [3] => abc@example.com
        [email] => abc@example.com
        [4] => 58
        [user_id] => 58
    )

[2] => Array
    (
        [0] => asdasd
        [company] => asdasd
        [1] => Hưng
        [firstname] => Hưng
        [2] => asdasdasd
        [lastname] => asdasdasd
        [3] => dealer@abc.com
        [email] => dealer@abc.com
        [4] => 59
        [user_id] => 59
    )

)

1和2有相同的[公司],我想将数组键更改为[company],应该像这样转换。它们将按唯一的公司密钥分组。

Array
(
   [asdasd] => Array 
       (
         [1] => Array (
               (
                 [0] => ASDSADASD
                 [firstname] => ASDSADASD
                 [1] => ASDSAD
                 [lastname] => ASDSAD
                 [2] => abc@example.com
                 [email] => abc@example.com
                 [3] => 58
                 [user_id] => 58
               )

         [2] => Array
               (
                 [0] => Hưng
                 [firstname] => Hưng
                 [1] => asdasdasd
                 [lastname] => asdasdasd
                 [2] => dealer@abc.com
                 [email] => dealer@abc.com
                 [3] => 59
                 [user_id] => 59
               )
       )
)

请告诉我怎么做。 非常感谢你。

2 个答案:

答案 0 :(得分:2)

试试这个

$arr_output = array();
foreach($arr_input as $arr)
{
    $key = $arr['company'];

    for($i=1; $i<sizeof($arr)/2; $i++)
    {
       $arr[$i-1] = $arr[$i]; 
    }
    unset($arr[$i-1]);
    unset($arr['company']);

    $arr_output[$key][] = $arr;

}

print_r($arr_output);

参见 Demo

答案 1 :(得分:1)

丑陋的解决方案,但工作

$comp=$r[1]['company'];

unset($r[1][0]);//if you use fetch_assoc instead of fetch_array then you wont get rid of these numerical keys in array
unset($r[1]['company']);
unset($r[2][0]);
unset($r[2]['company']);

$n[$comp]=$r;
print_r($n);

根据需要输出