当key_value相同时拼接一个数组?

时间:2012-11-04 11:49:52

标签: php arrays split hashmap

我需要拆分我的排序数组,以便每个创建的数组都包含与该值相关的所有数组。

Array (
    [NAME] => Array
    (
        [0] => Fooaz
        [1] => bzdsfdasfz
        [2] => Fooooooooo
    )

    [DESCRIPTION] => Array
    (
        [0] => Foo
        [1] => Foo
        [2] => Barrrr
    )
)

例如,从那个数组我想得到两个数组。一个包含:

[NAME]=>Array([0] => Fooooooooo), [DESCRIPTION]=>Array([0] => Barrrr):

另一个包含其余元素。

这样做的有效方法是什么?

3 个答案:

答案 0 :(得分:1)

使用array_pop(): http://codepad.org/GeP6OEtf

<?php

$arr=array(
"NAME"=>array('a','b','c','d'),
"DESC"=>array('A','B','C','D')
);

$newarr=array();
foreach ($arr as $key=>$value) {
    $newarr[$key]=array(array_pop($arr[$key]));
}
print_r($arr);
echo "\n-------------\n";
print_r($newarr);

答案 1 :(得分:1)

您可以使用提取功能。

extract($array);

这将自动为您提供两个数组。

reference

答案 2 :(得分:1)

$arr = Array (
    'NAME' => Array
    (
        0 => 'Fooaz',
        1 => 'bzdsfdasfz',
        2 => 'Fooooooooo'
    ),

    'DESCRIPTION' => Array
    (
        0 => 'Foo',
        1 => 'Foo',
        2 => 'Barrrr'
    )
);

$arr1 = array();
foreach ($arr as $key => $value) {
    $arr1[$key][] = array_pop($arr[$key]);
}

print_r($arr);
print_r($arr1);