我有一个包含以下格式数据的数组:
$myArray = array(
array(
'id' = 1,
'title' = 'the first entry',
'data' = 'additional data'
),
array(
'id' = 2,
'title' = 'the third entry',
'data' = 'some more data'
),
array(
'id' = 3,
'title' = 'the second entry',
'data' = 'other important stuff'
)
);
(一个包含大约12个子数组的数组)。根据title属性,需要将此数据拆分为两行,以便在我的页面上显示。我知道第一行我想要什么标题,第二排哪些标题。所以我有另一个这样的数组:
$firstRow = array('the first entry', 'the second entry');
$secondRow = array('the third entry');
所以我需要做的就是将这3个数组$myArray, $firstRow, $secondRow
放入一个函数中,该函数将输出一个新的有序数组,该数组保留其他属性(id
和data
个键我的例子)如下:
$newArray = array(
'firstRow' => array(
array(
'id' = 1,
'title' = 'the first entry',
'data' = 'additional data'
),
array(
'id' = 2,
'title' = 'the second entry',
'data' = 'some more data'
)
),
'secondRow' => array(
array(
'id' = 3,
'title' = 'the third entry',
'data' = 'other important stuff'
)
)
);
我有一些想法,我知道有各种各样的函数,比如array_intersect(),但我不确定哪个最好用?希望有人能够快速简便地解决这个问题。感谢。
答案 0 :(得分:0)
使用foreach
循环titles数组,并在循环内创建一个新数组,具体取决于标题值:
function groupTitlesintoArrays($myArray, $firstRow, $secondRow) {
$result = array();
foreach ($myArray as $innerArray) {
foreach ($firstRow as $row) {
if ($row == $innerArray['title']) {
$result['firstRow'][] = $innerArray;
}
}
foreach ($secondRow as $row) {
if ($row == $innerArray['title']) {
$result['secondRow'][] = $innerArray;
}
}
}
return $result;
}