[英]Creating Associative Array in PHP
我有一個多維數組。
$shop = array(
array("appn1", "pub1" ,"pub2" , "pub3"),
array("appn2", "pub1"),
array("appn3", "pub1" ,"pub2")
);
每個數組中的第一項是申請號 ,其余每個數組是出版物號 。 我得到每個數組的第一個項目(申請號)和最后一個項目(最新的出版號),像這樣
$index = count(array_keys($shop));
for($i=0;$i<$index;$i++){
$appln_nr = $shop[$i][0];
echo $appln_nr;
$publn_nr_index = count(array_keys($shop[$i]))-1;
$publn_nr = $shop[$i][$publn_nr_index];
echo $publn_nr;
}
現在,我有每個內部數組的應用程序編號和發布編號。
我想從應用程序編號和發布編號創建一個關聯數組。
密鑰應為申請號,其值為公開號。
謝謝
編輯
我從$ shop數組中得到什么
Array
(
[0] => Array
(
[0] => appn1
[1] => pub1
[2] => pub2
[3] => pub3
)
[1] => Array
(
[0] => appn2
[1] => pub1
)
[2] => Array
(
[0] => appn3
[1] => pub1
[2] => pub2
)
)
這就是我在關聯數組中需要的
Array(
"appn1" => "pub3"
"appn2" => "pub1"
"appn3" => "pub2"
)
最終,在編輯XD之后,我明白了您想要什么:
$shop = array(
array("appn1", "pub1" ,"pub2" , "pub3"),
array("appn2", "pub1"),
array("appn3", "pub1" ,"pub2")
);
$shopNew = array();
foreach($shop as $value){
$shopNew[$value[0]] = end($value);
}
// now if you want you can replace $shop and unset $shopNew
$shop = $shopNew;
unset($shopNew);
print_r($shop);
輸出是這樣的:
Array (
[appn1] => pub3
[appn2] => pub1
[appn3] => pub2
)
通過使用第一個元素作為鍵(請參見reset
)和最后一個元素(請參見end
)作為值,可以輕松地將數組轉換為新格式:
foreach($shop as $fl) {
$v[reset($fl)] = end($fl);
}
結果在$v
。
如果要轉換數組,則還需要刪除每個元素:
foreach($shop as $v => $fl) {
$shop[reset($fl)] = end($fl);
unset($shop[$v]);
}
結果是在$shop
。 Unset負責從陣列中刪除。
兩種情況下的輸出為:
array(3) {
'appn1' =>
string(4) "pub3"
'appn2' =>
string(4) "pub1"
'appn3' =>
string(4) "pub2"
}
你可以試試
$shop = array(
array("appn1","pub1","pub2","pub3"),
array("appn2","pub1"),
array("appn3","pub1","pub2")
);
$final = array();
array_map(function ($var) use(&$final) {$final[reset($var)] = end($var);}, $shop);
var_dump($final);
輸出量
array
'appn1' => string 'pub3' (length=4)
'appn2' => string 'pub1' (length=4)
'appn3' => string 'pub2' (length=4)
嘗試這個:
foreach($shop as $k => $v) {
$new_arr[$v[0]] = end($v);
}
它應該給你這個結果,
$new_arr = array(
"appn1" => "pub3",
"appn2" => "pub1",
"appn3" => "pub2"-
);
您也可以這樣創建
$arrField = [];
$arrField['id'] = '0001';
$arrField["first_name"] ='Demo Test';
print_r($arrField);
print_r($ arrField)這樣顯示輸出。
Array ( [id] => 0001 [first_name] => Demo Test )
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.