【发布时间】:2021-02-09 19:58:53
【问题描述】:
我有两个关联数组,一个叫做 $events,一个叫做 $wikipedia。
我想要一种有效的方法来将 $wikipedia 中的“extract”和“thumbnail”加入到 $events 中,其中 $events 中的“name”与 $wikipedia 中的“title”匹配。
原创 $events
$events = Array
(
[0] => Array
(
[id] => 0
[name] => Human
[start] => 123
)
[1] => Array
(
[id] => 1
[name] => Neanderthal
[start] => 456
)
[2] => Array
(
[id] => 2
[name] => Denisovan
[start] => 456
)
)
$维基百科
$wiki = Array
(
[26685803] => Array
(
[pageid] => 26685803
[ns] => 0
[title] => Denisovan
[thumbnail] => Array
(
[source] => https://upload.wikimedia.org/wikipedia/commons/thumb/c/ca/Denisova_4_Denisovan_molar_3.jpg/133px-Denisova_4_Denisovan_molar_3.jpg
[width] => 133
[height] => 200
)
[extract] => The Denisovans or Denisova hominins ( di-NEE-sə-və) are an extinct species or subspecies of archaic human that ranged across Asia during the Lower and Middle Paleolithic. Denisovans are known from few remains, and, consequently, most of what is known about them comes from DNA evidence. Pending consensus on their taxonomic status, they have been referred...
)
[682482] => Array
(
[pageid] => 682482
[ns] => 0
[title] => Human
[thumbnail] => Array
(
[source] => https://upload.wikimedia.org/wikipedia/commons/thumb/6/68/Akha_cropped_hires.JPG/119px-Akha_cropped_hires.JPG
[width] => 119
[height] => 200
)
[extract] => Humans (Homo sapiens) are a species of highly intelligent primates. They are the only extant members of the subtribe Hominina and—together with chimpanzees, gorillas, and orangutans—are part of the family Hominidae (the great apes, or hominids). Humans are terrestrial animals, characterized by their erect posture and bipedal locomotion; high manual...
)
[27298083] => Array
(
[pageid] => 27298083
[ns] => 0
[title] => Neanderthal
[thumbnail] => Array
(
[source] => https://upload.wikimedia.org/wikipedia/commons/thumb/d/d4/Range_of_NeanderthalsAColoured.png/200px-Range_of_NeanderthalsAColoured.png
[width] => 200
[height] => 95
)
[extract] => Neanderthals (, also Neandertals, Homo neanderthalensis or Homo sapiens neanderthalensis) are an extinct species or subspecies of archaic humans who lived in Eurasia until about 40,000 years ago. They most likely went extinct due to great climatic change, disease, or a combination of these factors.It is unclear when Neanderthals split from modern humans...
)
)
使用来自 $wikipedia 的数据修改了 $events
$events = Array
(
[0] => Array
(
[id] => 0
[name] => Human
[start] => 123
[thumbnail] => Array
(
[source] => https://upload.wikimedia.org/wikipedia/commons/thumb/6/68/Akha_cropped_hires.JPG/119px-Akha_cropped_hires.JPG
[width] => 119
[height] => 200
)
[extract] => Humans (Homo sapiens) are a species of highly intelligent primates. They are the only extant members of the subtribe Hominina and—together with chimpanzees, gorillas, and orangutans—are part of the family Hominidae (the great apes, or hominids). Humans are terrestrial animals, characterized by their erect posture and bipedal locomotion; high manual...
)
[1] => Array
(
[id] => 1
[name] => Neanderthal
[start] => 456
[thumbnail] => Array
(
[source] => https://upload.wikimedia.org/wikipedia/commons/thumb/d/d4/Range_of_NeanderthalsAColoured.png/200px-Range_of_NeanderthalsAColoured.png
[width] => 200
[height] => 95
)
[extract] => Neanderthals (, also Neandertals, Homo neanderthalensis or Homo sapiens neanderthalensis) are an extinct species or subspecies of archaic humans who lived in Eurasia until about 40,000 years ago. They most likely went extinct due to great climatic change, disease, or a combination of these factors.It is unclear when Neanderthals split from modern humans...
)
[2] => Array
(
[id] => 2
[name] => Denisovan
[start] => 456
[thumbnail] => Array
(
[source] => https://upload.wikimedia.org/wikipedia/commons/thumb/c/ca/Denisova_4_Denisovan_molar_3.jpg/133px-Denisova_4_Denisovan_molar_3.jpg
[width] => 133
[height] => 200
)
[extract] => The Denisovans or Denisova hominins ( di-NEE-sə-və) are an extinct species or subspecies of archaic human that ranged across Asia during the Lower and Middle Paleolithic. Denisovans are known from few remains, and, consequently, most of what is known about them comes from DNA evidence. Pending consensus on their taxonomic status, they have been referred...
)
)
我的尝试
我可以通过嵌套的 foreach 循环来实现这一点。然而,这似乎不是很有效,因为我必须迭代 $wikipedia 数组中的每个元素。我想知道是否有更好的方法。
$arr = array();
foreach($events as $event){
foreach($wiki as $w){
if ($w['title'] == $event['name']){
$event['extract'] = $w['extract'];
$event['thumbnail'] = $w['thumbnail'];
array_push($arr, $event);
}
}
}
【问题讨论】:
标签: php associative-array