我有这个数组。在过去的几个小时里,我一直在尝试循环并制作另一个,将问题安排在各自的科目中。
[23] => Array
(
[right] => A list of station and network addresses with corresponding gateway IP address.
[id] => 23
[level] => Professional
[subject] => Array
(
[0] => Array
(
[tid] => 1
)
[1] => Array
(
[tid] => 6
)
)
[question] => What is an IP routing table?
[answer] => A list of host names and corresponding IP addresses.
[correct] => 0
)
[22] => Array
(
[right] => Session hijacking attack
[id] => 22
[level] => Professional
[subject] => Array
(
[0] => Array
(
[tid] => 1
)
[1] => Array
(
[tid] => 6
)
)
[question] => How would an IP spoofing attack be best classified?
[answer] => Session hijacking attack
[correct] => 1
)
[21] => Array
(
[right] => Repeater
[id] => 21
[level] => Intermediate
[subject] => Array
(
[0] => Array
(
[tid] => 1
)
[1] => Array
(
[tid] => 6
)
)
我想做下面这样的东西。
array ( [tid1] => array (
[0] array ( [question] => something )
[1] array ( [question] => somethingelse )
)
[tid2] => array (
[0] array ( [question] => something )
[1] array ( [question] => somethingelse )
)
但我做不到。最好的方法是什么?
假设您的数据位于一个名为$data
的数组中,并且由于每个问题可以有多个主题,因此每个问题可能在最终数组中出现多次:
$final = array();
foreach($data as $datum){
$subjects = $datum['subject'];
foreach($subjects as $subject){
$tid = 'tid' . $subject['tid'];
$final[$tid][] = array('question' => $datum['question']);
}
}