簡體   English   中英

在多維數組中,應如何將鍵設置為數組的值

[英]In a multidimensianl array how should I set the keys as a value of my array

我有這個$courses變量。 var_dump($courses)的結果是這樣的:

array(3) { 
[0]=> array(8) { ["course_name"]=> string(11) "Mathematics" ["day_of_week"]=> string(1) "1" ["start"]=> string(8) "10:00:00" ["end"]=> string(8) "12:00:00"  ["course_id"]=> string(4) "1111" }
[1]=> array(8) { ["course_name"]=> string(7) "Physics" ["day_of_week"]=> string(1) "2" ["start"]=> string(8) "12:00:00" ["end"]=> string(8) "14:00:00" ["course_id"]=> string(4) "2222" } 
[2]=> array(8) { ["course_name"]=> string(7) "History" ["day_of_week"]=> string(1) "5" ["start"]=> string(8) "10:00:00" ["end"]=> string(8) "12:00:00" ["course_id"]=> string(4) "5555" } }

最好的方法是將course_id每個內部數組的鍵,這樣結果將是:

array(3) { 
['1111']=> array(8) { ["course_name"]=> string(11) "Mathematics" ["day_of_week"]=> string(1) "1" ["start"]=> string(8) "10:00:00" ["end"]=> string(8) "12:00:00"  ["course_id"]=> string(4) "1111" }
['2222']=> array(8) { ["course_name"]=> string(7) "Physics" ["day_of_week"]=> string(1) "2" ["start"]=> string(8) "12:00:00" ["end"]=> string(8) "14:00:00" ["course_id"]=> string(4) "2222" } 
['5555']=> array(8) { ["course_name"]=> string(7) "History" ["day_of_week"]=> string(1) "5" ["start"]=> string(8) "10:00:00" ["end"]=> string(8) "12:00:00" ["course_id"]=> string(4) "5555" } }

PHP> = 5.5

您可以使用array_column()重新索引數組

$reindexed = array_column($courses, null, 'course_id');

在本手冊中,第二個參數可以為此目的而為null:

返回完整的數組或對象也可能為NULL (這與index_key [third index_key ]一起用於重新索引數組很有用)。

PHP <5.5

您可以使用簡單的foreach 重新創建數組

$reindexed = array();
foreach ($courses as $values) {
    $reindexed[$values['course_id']] = $values;
}

這是使用array_column (從PHP 5.5開始可用)和array_combine函數的簡短解決方案:

$courses = array_combine(array_column($courses, "course_id"), $courses);
// now $courses contains the needed result

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM