简体   繁体   English

将数组键转换为 Laravel 中的对象

[英]Convert array key as object in laravel

I have an array as flight_names :我有一个数组作为 flight_names :

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

i want it to change to structure我希望它变成结构

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

Can anyone help me , how to change to this format in LARAVEL or PHP.任何人都可以帮助我,如何在 LARAVEL 或 PHP 中更改为这种格式。

You can use json_encode if its json output,你可以使用 json_encode 如果它的 json 输出,

$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;

reference : array-combine , array-map & json-encode .参考array-combinearray-map & json-encode

JSON_PRETTY_PRINT JSON_PRETTY_PRINT
Use whitespace in returned data to format it.在返回的数据中使用空格来格式化它。 Available as of PHP 5.4.0.从 PHP 5.4.0 开始可用。

Demo演示

Simple foreach loop,简单的 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;

Reference : array-fill-keys参考数组填充键

Demo .演示

A simplified version of array_map, array_map 的简化版本,

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

Demo .演示

A Simplified foreach,一个简化的 foreach,

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

Demo .演示

To reverse your output,要反转您的输出,

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

Output输出

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM