2017-05-22 163 views
1

我使用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從兩個給定陣列

回答

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

提供您的關鍵字匹配,你可以這樣做:

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

WH ich會返回:

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

如果您的密鑰不匹配,您需要在數組合並之前對數組執行某些操作。我也在工匠修補程序中快速測試了這個,所以不要把它當作最終的。

1
<?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); 

    ?> 

你可以得到關鍵的國名和值作爲資本。

0

在PHP
你可以使用aforeach超過兩陣

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

} 
0
<?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> 

試試吧。簡單易懂

相關問題