如何将数组值爆炸并更改为键?

时间:2014-05-14 07:05:46

标签: php arrays

我有这样的数组。

Array
(
    [0] => Array
        (
            [0] => a~226
            [1] => a~228
        )

    [1] => Array
        (
            [0] => b~123
            [1] => b~209
        )

    [2] => Array
        (
            [0] => c~161
            [1] => c~140
        )

)

我想使用〜符号来爆炸这个数组,我希望value成为php array中的一个键。我想要一个像这样的数组。请帮我写代码。

Array
(
    [0] => Array
        (
            [a] => 226
            [a] => 228
        )

    [1] => Array
        (
            [b] => 123
            [b] => 209
        )

    [2] => Array
        (
            [c] => 161
            [c] => 140
        )

)

提前致谢...

2 个答案:

答案 0 :(得分:1)

你不能拥有这样的数组。 钥匙必须是独一无二的(就像Mark Ba​​ker所说)。

你可以这样:

Array
(
    [a] => Array
        (
            [0] => 226
            [1] => 228
        )

    [b] => Array
        (
            [0] => 123
            [1] => 209
        )

    [c] => Array
        (
            [0] => 161
            [1] => 140
        )

)

执行此操作的代码:

$array = array(
    array("a~226", "a~228"), 
    array("b~123", "b~209"), 
    array("c~161", "c~140")
);

$result = array();

foreach($array as $inner_array) {
    foreach($inner_array as $value) {
        $spitted = explode("~", $value);
        $result[$spitted[0]][] = end($spitted);
    }

}

一个工作示例:http://codepad.viper-7.com/znhhqB

答案 1 :(得分:0)

试试这个

$arr_new  = array();
foreach($arr_main as $key=>$arr)
{
    foreach($arr as $k=>$val)
    {
        $str = explode("~",$val);
        $arr_new[$key][$str[0].$k]=$str[1];
    }
}

会将索引维持为a0, a1