gpt4 book ai didi

PHP - 多维数组差异

转载 作者:可可西里 更新时间:2023-11-01 00:51:35 25 4
gpt4 key购买 nike

我想请求你的帮助,因为我很难解决这个问题。我创建了一个函数来促进数组差异,但它不能满足我的需要。谢谢,还有更多的力量!

<?php
$arraySession = array(
'sampleA' => array('1', '2', '3'),
'sampleB' => array('1', '2', '3'),
);

$arrayPost = array(
'sampleA' => array('1'),
'sampleB' => array('1','2'),
);

结果应该是:

array(
'sampleA' => array('2', '3')
'sampleB' => array('3'),
)

我现有的功能:

    public function array_diff_multidimensional($session, $post) { 
$result = array();
foreach($session as $sKey => $sValue){
foreach($post as $pKey => $pValue) {
if((string) $sKey == (string) $pKey) {
$result[$sKey] = array_diff($sValue, $pValue);
} else {
$result[$sKey] = $sValue;
}
}
}
return $result;
}

任何帮助将不胜感激!编码愉快!

最佳答案

这不是我的功能,也没有经过我测试,但这是 php.net/array_diff 上的第一批评论之一(感谢 gmail.com 的 thefrox)

<?php
function multidimensional_array_diff($a1, $a2) {
$r = array();

foreach ($a2 as $key => $second) {
foreach ($a1 as $key => $first) {
if (isset($a2[$key])) {
foreach ($first as $first_value) {
foreach ($second as $second_value) {
if ($first_value == $second_value) {
$true = true;
break;
}
}
if (!isset($true)) {
$r[$key][] = $first_value;
}
unset($true);
}
} else {
$r[$key] = $first;
}
}
}
return $r;
}
?>

关于PHP - 多维数组差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6026431/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com