[英]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" } }
您可以使用array_column()
重新索引數組 :
$reindexed = array_column($courses, null, 'course_id');
在本手冊中,第二個參數可以為此目的而為null:
返回完整的數組或對象也可能為
NULL
(這與index_key
[thirdindex_key
]一起用於重新索引數組很有用)。
$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.