[英]Reassign value from an array in a foreach loop in object oriented php
在我的公共函數中,我創建了一個具有兩個值的數組,分別是類型和ID:
public function easypost_database()
{
\EasyPost\EasyPost::setApiKey('mykey');
$cas = \EasyPost\CarrierAccount::all();
foreach ($cas as $key => $value) {
$this->services[] = array('type' => $value['type'],
'id' => $value['id']
);
}
}
我的數組如下所示:
Array
(
[0] => Array
(
[type] => CanadaPostAccount
[id] => myidcp0
)
[1] => Array
(
[type] => PurolatorAccount
[id] => myidp0
)
)
現在在我的另一個函數中,我想提取這些值並回顯它們(實際上,我想在下拉列表中插入這些值,但是為了這個問題,讓我們假裝我將回顯它們)。
所以我的其他功能看起來像:
public function settings_form($current)
{
$database = $this->easypost_database();
$services_a = $this->services;
foreach ($services_a as $key => $value) {
foreach ($value['type'] as $key => $val) {
print_r($val)
}
}
}
由於某種原因,我無法打印我的數組,因為該數組返回一個空值(或僅返回該數組的第一個值)。
我可以創建一個數組並將值推送到foreach循環之外,但是我一直在尋找一種處理代碼的更優雅的方法。
更新:
我總是可以做這樣的事情:
$services_a = $this->services;
$service_type = array();
foreach ($services_a as $key => $value) {
array_push($service_type, $value['type']);
}
foreach ($service_type as $val) {
$s .= $this->formDropdown('service[]', $val, $this->settings['service']) . ' ' . $val . '<br>';
}
但是我正在尋找更短的方法。
嘗試這個:
public function settings_form($current)
{
$database = $this->easypost_database();
$services_a = $this->services;
foreach ($services_a as $key => $value) {
foreach ($value as $key => $val) {
if( $key == 'type' ){
print_r($val);
}
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.