繁体   English   中英

如何从PHP中的两个数组创建对象集合?

[英]How to create an objects collection from two arrays in php?

我正在使用Laravel并且我在控制器中有两个数组

$country_name=["italia", "japan", "congo", "uk"]
$country_capital=["roma", "tokyo", "kinshasa", "london"]

请注意,在国名的位置$country_name数组是一样的相应资本$country_capital阵列。

从这两个数组中,我正在寻找一种创建名为$countries的对象的集合的方法,因此在我的刀片文件中,我可以像这样使用它:

<ul>
    @foreach($countries as $country)
       <li>{{$country->country_name}} : {{$country->country_capital}}</li>
    @endforeach
</ul>

如果有人可以通过函数或步骤帮助我从两个给定数组中获取$countries

提供您可以匹配的密钥:

$foo = collect([
    'country_name'    => $country_name,
    'country_capital' => $country_capital
]);

这将返回:

Illuminate\Support\Collection {#1966
     all: [
       "country_name" => [
         "italia",
         "japan",
         "congo",
         "uk",
       ],
       "country_capital" => [
         "roma",
         "tokyo",
         "kinshasa",
         "london",
       ],
     ],
   }

如果您的键不匹配,则需要在合并数组之前对数组进行某些操作。 我也在手工艺匠中进行了快速测试,因此不要将其作为最终决定。

$country_name = ["italia", "japan", "congo", "uk"];
$country_capital = ["roma", "tokyo", "kinshasa", "london"];

$countries = array_map(function ($countryName, $countryCapital) {
    return [
        'country_name' => $countryName,
        'country_capital' => $countryCapital,
    ];
}, $country_name, $country_capital);

dd(collect($countries));
   <?php
    $obj=new stdClass();
    $country_name=["italia", "japan", "congo", "uk"];
    $country_capital=["roma", "tokyo", "kinshasa", "london"];
    $obj=(object)array_combine ($country_name , $country_capital );
    var_dump($obj);

   ?>

您可以将密钥作为国家名称,将值作为资本。

在PHP中
您可以在两个数组上使用aforeach

foreach($country_name as $key => $value ){
  $countries[$key]['name'] = $value;
  $countries[$key]['capital'] = $country_capital[$key];

}
<?php

$country_name=["italia", "japan", "congo", "uk"];
$country_capital=["roma", "tokyo", "kinshasa", "london"];

$i=0; 

?>

<ul>
     @foreach($country_name as $country)
        <li>{{$country_name[$i]}} : {{$country_capital[$i]}}</li>
       <?php $i++; ?>
       @endforeach

</ul>

试试吧。 简单易懂

暂无
暂无

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

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