【问题标题】:I have only one array inside the index, so i want to move the index to the previous index? Please see the reference below:我在索引中只有一个数组,所以我想将索引移动到前一个索引?请参阅以下参考:
【发布时间】:2018-10-17 06:33:21
【问题描述】:
Array
(
    [data] => Array
        (
            [0] => Array
                (
                    ['degree_level'] => Bachelor's
                )

            [1] => Array
                (
                    ['field_of_study'] => Science
                )

            [2] => Array
                (
                    ['grade_point'] => 3
                )

            [3] => Array
                (
                    ['criteria'] => desired
                )

        )

)

我想要什么:

Array
(
    [data] => Array
        (
            ['degree_level'] => Bachelor's

            ['field_of_study'] => Science

            ['grade_point'] => 3

            ['criteria'] => desired

        )

)

【问题讨论】:

  • 使用array_merge
  • 用“”包裹你的字符串
  • 请仅使用与您的问题实际相关的标签,并说明原因 - 谢谢!

标签: php arrays core


【解决方案1】:

您应该使用array_flatten(); 来实现这样的目标,

$flattened = array_flatten(Your_Data_Array);

请试一试并告诉我。

更新

$flattened = array_map(function($item) {
                return $item[0];
             }, Your_Data_Array);

有关 PHP 函数的更多信息,您可以访问this

如有任何疑问,请告诉我。

【讨论】:

  • 它将返回一个包含主数组和子数组的所有值的数组。它将省略键。
【解决方案2】:
$output = array_map(function($item) { return $item[0]; }, $myArray);

【讨论】:

  • $data = $data[0]; 只会给出第一个子数组。
【解决方案3】:

试试这个,

foreach($data as $key1=>$val1){
    foreach($val1 as $key2=>$val2){
        $new_array[$key2] = $val2;
        }
    }

【讨论】:

    【解决方案4】:

    您可以循环执行。

    foreach ($data as $key => $value) {
        foreach ($value as $key1 => $value2) {
            $data[$key1] = $value2;
        }
    }
    

    【讨论】:

      【解决方案5】:

      例如,您可以使用双 foreach 循环来使用第二个循环中的键和值,并将它们添加到 $arrays["data"] 数组中。

      然后您可以使用unset 删除嵌套数组。

      $arrays = [
          "data" => [
              ["degree_level" => " Bachelor's"],
              ["field_of_study" => "Science"],
              ["grade_point" => 3],
              ["criteria" => "desired"]
          ]
      ];
      
      foreach($arrays["data"] as $dataKey => $data) {
          foreach ($data as $key => $value) {
              $arrays["data"][$key] = $value;
          }
          unset($arrays["data"][$dataKey]);
      }
      print_r($arrays);
      

      这会给你:

      Array
      (
          [data] => Array
              (
                  [degree_level] =>  Bachelor's
                  [field_of_study] => Science
                  [grade_point] => 3
                  [criteria] => desired
              )
      
      )
      

      Demo

      【讨论】:

        【解决方案6】:

        您可以使用array_collapse 实现此目的。

        Link

        编辑

        虽然标签已更改。

        这里是基于Laravel的核心php解决方案array_collapse

        function collapse($array)
        {
            $results = [];
        
            foreach ($array as $values) {
               if (! is_array($values)) {
                    continue;
                }
        
                $results = array_merge($results, $values);
            }
        
            return $results;
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-04-19
          • 2011-07-12
          • 2017-09-30
          • 1970-01-01
          • 2012-11-26
          • 1970-01-01
          • 1970-01-01
          • 2021-12-08
          相关资源
          最近更新 更多