【问题标题】:Re-arranging and combining an array重新排列和组合数组
【发布时间】:2018-01-26 17:57:50
【问题描述】:

我在转储下面的数组时遇到了问题。这会转储几个数组。有些是 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"
}

【问题讨论】:

标签: php arrays loops array-merge


【解决方案1】:

试试这个代码:

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

或者你可以使用array_merge_recursive

【讨论】:

  • 谢谢@Milad,请查看 Barmar 的回答
【解决方案2】:
let $result = [];

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

【讨论】:

    【解决方案3】:

    给你:How to Flatten a Multidimensional Array? – Barmar 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]);
                    }
    

    【讨论】:

      【解决方案4】:

      试试这样的:

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

      【讨论】:

      • 谢谢@stratadox,请参阅 Barmar 的回答
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-08-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多