【问题标题】:Convert array key as object in laravel在laravel中将数组键转换为对象
【发布时间】:2019-11-15 01:39:48
【问题描述】:

我有一个作为 flight_names 的数组:

           [
               "Spice Jet",
               "Go Air",
               "Air India",
               "Vistara"
           ]

我希望它改变结构

           [
               {"flight_name":"Spice Jet"},
               {"flight_name":"Go Air"},
               {"flight_name":"Air India"},
               {"flight_name":"Vistara"}
           ]

谁能帮帮我,如何在 LARAVEL 或 PHP 中更改为这种格式。

【问题讨论】:

  • 您似乎混淆了 php 和 json。更好地解释您的需求。
  • 我有如上的共鸣,我想使用 php laravel 代码将上面的数组转换为以下格式。
  • 你尝试了什么,你在哪里卡住了?请将此信息添加到问题中
  • 你没有多说
  • 实际上一个 android 人希望数组的格式是每个索引都是一个带有 flight_name 及其值的对象,我有一个包含所有航班值的数组,但我不知道如何转换对象的数组值与上述结构相同

标签: php laravel


【解决方案1】:
 $airlineArray=["Spice Jet", "Go Air", "Air India", "Vistara"];
    $finalArray=[];
    foreach($airlineArray as $key=>$value)
     {
       $arrayValue = ['flight_name' => $value];
          $finalArray[]=$arrayValue;
      }
     return $finalArray;

【讨论】:

    【解决方案2】:

    如果它的 json 输出,您可以使用 json_encode,

    $arr    = ["Spice Jet", "Go Air", "Air India", "Vistara"];
    $result = json_encode(array_map(function ($item) {
        return (array_combine(['flight_name'], [$item]));
    }, $arr), JSON_PRETTY_PRINT);
    print_r($result);die;
    

    参考array-combinearray-map & json-encode

    JSON_PRETTY_PRINT
    在返回的数据中使用空格来格式化它。自 PHP 5.4.0 起可用。

    Demo

    简单的foreach循环,

    $arr = ["Spice Jet", "Go Air", "Air India", "Vistara"];
    foreach($arr as &$v){
        $v = (array_fill_keys([$v], "flight_name"));
    }
    print_r(json_encode($arr));die;
    

    参考array-fill-keys

    Demo.

    array_map 的简化版,

    $result =array_map(function($item){
        return ['flight_name' => $item];
    }, $arr);
    

    Demo.

    一个简化的 foreach,

    foreach($arr as &$v){
        $v = ['flight_name' => $v];
    }
    print_r(json_encode($arr));die;
    

    Demo.

    要反转你的输出,

    foreach($arr as &$v){
        $v = array_flip(json_decode($v, true));
    }
    

    输出

    [
        {
            "flight_name": "Spice Jet"
        },
        {
            "flight_name": "Go Air"
        },
        {
            "flight_name": "Air India"
        },
        {
            "flight_name": "Vistara"
        }
    ]
    

    【讨论】:

    • 先生,我有一个如上所述的简单数组,并希望将数组转换为第二个结构。我已经编辑了我的问题
    • 我对我的回答进行了更改。请看一看。现在我的输出与你的完全匹配:)
    • 先生,我得到的正是我想要的,但是键和值被交换了,你能帮忙重新排序吗? [ {“Spice Jet”:“flight_name”},{“Go Air”:“flight_name”},{“印度航空”:“flight_name”},{“Vistara”:“flight_name”}]
    • 你做了什么?使用我的 sn-p。最后一个sn-ps会更好。
    • 请检查我的To reverse your output部分答案。
    猜你喜欢
    • 2021-02-11
    • 2014-11-28
    • 2016-03-14
    • 1970-01-01
    • 2019-09-18
    • 1970-01-01
    • 1970-01-01
    • 2015-04-23
    相关资源
    最近更新 更多