我有2个阵列:
$big_array = array (
array (
array (
'correct' => FALSE,
'answer' => 'false answer1'
),
array (
'correct' => FALSE,
'answer' => 'false answer2'
),
array (
'correct' => FALSE,
'answer' => 'false answer3'
),
array (
'correct' => TRUE,
'answer' => 'correct answer'
)
)
);
$small_array = array (
array (
array (
'correct' => FALSE,
'answer' => 'false answer1'
)
)
);
Run Code Online (Sandbox Code Playgroud)
我想制作,array_diff($big_array, $small_array)但它不工作我想要它,目前它给我一个空数组作为结果,我希望结果是:
$outcome_array= array (
array (
array (
'correct' => FALSE,
'answer' => 'false answer2'
),
array (
'correct' => FALSE,
'answer' => 'false answer3'
),
array (
'correct' => TRUE,
'answer' => 'correct answer'
)
)
);
Run Code Online (Sandbox Code Playgroud)
有什么建议?
liy*_*kat 11
是的,你可以使用以下功能来获得完美的答案
function arrayRecursiveDiff($aArray1, $aArray2) {
$aReturn = array();
foreach ($aArray1 as $mKey => $mValue) {
if (array_key_exists($mKey, $aArray2)) {
if (is_array($mValue)) {
$aRecursiveDiff = arrayRecursiveDiff($mValue, $aArray2[$mKey]);
if (count($aRecursiveDiff)) { $aReturn[$mKey] = $aRecursiveDiff; }
} else {
if ($mValue != $aArray2[$mKey]) {
$aReturn[$mKey] = $mValue;
}
}
} else {
$aReturn[$mKey] = $mValue;
}
}
return $aReturn;
}
$arr1 = arrayRecursiveDiff($big_array,$small_array);
Run Code Online (Sandbox Code Playgroud)
产量
如你所愿
Array
(
[0] => Array
(
[1] => Array
(
[correct] =>
[answer] => false answer2
)
[2] => Array
(
[correct] =>
[answer] => false answer3
)
[3] => Array
(
[correct] => 1
[answer] => correct answer
)
)
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8037 次 |
| 最近记录: |