![](/img/trans.png)
[英]PHP/Laravel - Create an array of objects from two simple arrays or an associative array that combines that two
[英]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.