重新安排和组合阵列

时间:2018-01-26 17:57:50

标签: php arrays loops array-merge

当我转储下面的数组时,我遇到了问题。这会转储几个数组。有些是2,有些是3,这使其复杂化。基本上我想要的东西放在下面。我尝试了array_pusharray_combinearray_merge,包括$array[$param] = $insertValue在内的几种不同方式,我被卡住了。我也愿意创建一个全新的阵列。

请注意,并非所有数组都为3,但始终至少返回1.

原始阵列:

array(3) {
 [0]=>
 array(2) {
    ["contact_id"]=>
    string(9) "CONTACTID"
    ["contact_id_content"]=>
    string(19) "123456789123456"
}
 [1]=>
 array(2) {
    ["sm_owner"]=>
    string(9) "SMOWNERID"
    ["sm_owner_content"]=>
    string(19) "123456798452"
}
[2]=>
 array(2) {
    ["contact_owner"]=>
    string(13) "Contact Owner"
    ["contact_owner_content"]=>
    string(16) "Jane Doe"
}

所需数组:

array(3) {
 [0]=>
 array(6) {
   ["contact_id"]=>
   string(9) "CONTACTID"
   ["contact_id_content"]=>
   string(19) "123456789123456"
   ["sm_owner"]=>
   string(9) "SMOWNERID"
   ["sm_owner_content"]=>
   string(19) "123456798452"
   ["contact_owner"]=>
   string(13) "Contact Owner"
   ["contact_owner_content"]=>
   string(16) "Jane Doe"
}

4 个答案:

答案 0 :(得分:0)

试试这段代码:

$NewArray = array();
foreach($OriginalArray as $value) {
    $NewArray[] = array_merge($value,$NewArray);
}

或者您可以使用array_merge_recursive

答案 1 :(得分:0)

let $result = [];

foreach ($yourarray as $key => $value) {
  $result  = $value;
}
var_dump($result);

答案 2 :(得分:0)

你去:How to Flatten a Multidimensional Array? - 巴马尔23分钟前

                function flatten($array)
                {
                    return array_reduce($array, function($acc, $item){
                        return array_merge($acc, is_array($item) ? flatten($item) : [$item]);
                    }, []);
                }

                // loop the individual fields 
                for ($i=0; $i<count($row_data); $i++) {
                     $newArray = flatten([$i => $response_row]);
                }

答案 3 :(得分:-1)

尝试这样的事情:

function flatten(array $array) : array
{
    $newArray = [];
    foreach ($array as $subArray) {
        foreach ($subArray as $key => $value) {
            $newArray[$key] = $value;
        }
    }
    return $newArray;
}