在 PHP 中將陣列新增到陣列
-
在 PHP 中使用
for
和foreach
迴圈將陣列新增到陣列 -
在 PHP 中使用
array_merge()
函式將陣列新增到陣列 -
在 PHP 中使用
array_push()
函式將陣列新增到陣列
陣列包含一系列相同資料型別的索引元素,通常用於更快的迭代和資料管理。
通常,要訪問陣列元素,你將遍歷陣列。例如,在 PHP 應用程式中,一個陣列可以儲存登錄檔單中的資料,而另一個陣列可以儲存帳戶詳細資訊部分的資料。要在一個序列中使用兩個陣列,我們需要新增兩個陣列。為此,我們需要將第二個陣列附加到第一個陣列,不同的函式表現不同。
本教程討論了在 PHP 中將兩個陣列相加形成一個陣列的不同方法。
在 PHP 中使用 for
和 foreach
迴圈將陣列新增到陣列
將一個陣列新增到另一個陣列的一種簡單方法是選擇第二個陣列,遍歷所有元素,然後將每個元素附加到第一個陣列。但是,對於較大的陣列,這種特殊的解決方案相當長且效率低下。
$container = ["hair extension", "scissors"];
$shopping_lists = ["hair cream", "hair fryer", "makeup set"];
for($index = 0; $index < count($shopping_lists ); $index++){
array_push($container, $shopping_lists[$index]);
}
print_r($container)
輸出:
Array
(
[0] hair extension
[1] scissors
[2] hair cream
[3] hair fryer
[4] makeup set
)
true
此外,你可以將相同的方法應用於關聯陣列。但是,它具有同樣的低效率和複雜性。
$customer = array(
"name" => "Garner",
"email" => "g.abded@gmail.com",
"age" => 34,
"gender" => "female",
"account_type" => "starter"
);
$account = array(
"current_course" => "Ruby Crash Course",
"payment_channel" => "Stripe",
"browser" => "Edge"
);
foreach($account as $key => $value) {
$customer[$key] = $value;
}
print_r($customer)
輸出:
Array
(
[name] Garner
[email] g.abded@gmail.com
[age] 34
[gender] female
[account_type] starter
[current_course] Ruby Crash Course
[payment_channel] Stripe
[browser] Edge
)
true
在 PHP 中使用 array_merge()
函式將陣列新增到陣列
array_merge()
函式合併兩個或多個陣列,並將一個陣列的元素附加到前一個陣列的末尾,依此類推,直到最後一個陣列。此函式適用於索引、關聯和多維陣列。與前面的方法不同,這種方法建立一個新陣列並且不會追加到第一個陣列。
此方法可以與多個陣列一起使用。更詳細地說,我們可以使用這種方法將鍵值對(關聯陣列)相互新增以形成一個單獨的陣列。索引陣列也是如此。
$details = [
"name" => "Clement",
"email" => "clement@gmail.com",
"gender" => "male"
];
$accounts = [
"card" => "mastercard",
"processor" => "stripe",
"pro" => True
];
$account_details = array_merge($details, $accounts);
print_r($account_details);
輸出:
Array
(
[name] Clement
[email] clement@gmail.com
[gender] male
[card] mastercard
[processor] stripe
[pro] 1
)
true
以下是如何在三個陣列上使用 array_merge()
函式。
$details = [
"name" => "Clement",
"email" => "clement@gmail.com",
"gender" => "male"
];
$accounts = [
"card" => "mastercard",
"processor" => "stripe",
"pro" => True
];
$functions = [
"movies" => "inferno"
];
$account_details = array_merge($details, $accounts, $functions);
print_r($account_details);
輸出:
Array
(
[name] Clement
[email] clement@gmail.com
[gender] male
[card] mastercard
[processor] stripe
[pro] 1
[movies] inferno
)
true
此方法相容所有 PHP 7.0 及以上版本。
在 PHP 中使用 array_push()
函式將陣列新增到陣列
array_push()
函式將陣列推送到陣列的末尾,就像堆疊 (LIFO)。你可以使用【此功能】將索引陣列新增到關聯陣列中,它會自動為推送到關聯陣列的索引陣列建立一個數字索引。如果推送兩個索引陣列,第一個索引陣列儲存數字索引 0,第二個索引陣列儲存數字索引 1。對於推送的 N 個陣列
,數字索引將為 N-1
。
此外,你可以將索引陣列推送到索引陣列,將關聯陣列推送到關聯陣列。
$basic_data = ['Location' => 'Mumbai', 'Tier' => 'Three'];
$tools = ['Geology', 'Machine Learning'];
$BD_Tools = array_push($basic_data, $tools);
print_r($basic_data);
輸出:
Array
(
[Location] Mumbai
[Tier] Three
[0] Array
(
[0] Geology
[1] Machine Learning
)
)
true
此外,使用 array_push()
函式中的 ...
運算子允許被推入的陣列中的所有元素都有自己的數字索引,而不是一個為所有的。
$basic_data = ['Location' => 'Mumbai', 'Tier' => 'Three'];
$tools = ['Geology', 'Machine Learning'];
$BD_Tools = array_push($basic_data, ...$tools);
print_r($basic_data);
輸出:
Array
(
[Location] Mumbai
[Tier] Three
[0] Geology
[1] Machine Learning
)
true
對於關聯陣列推送操作,不能使用 ...
運算子,因為它會引發錯誤。
TypeError: array_push() 不接受未知的命名引數 null
因此,對兩個或更多陣列使用 array_push()
函式的唯一方法是通過預設方式。
$basic_data = ['Location' => 'Mumbai', 'Tier' => 'Three'];
$tools = ['Course' => 'Geology', 'Approach' => 'Machine Learning'];
$BD_Tools = array_push($basic_data, $tools);
print_r($basic_data);
輸出:
Array
(
[Location] Mumbai
[Tier] Three
[0] Array
(
[Course] Geology
[Approach] Machine Learning
)
)
true
Olorunfemi is a lover of technology and computers. In addition, I write technology and coding content for developers and hobbyists. When not working, I learn to design, among other things.
LinkedIn